char 相关问题

char通常是指字符数据类型,表示文本字母。

如果字符串包含奇数个字符,如何在最后一个字符后添加一个(_)字符

如何在最后一个字符后添加一个字符(_)? def split_string(string: str) -> 列表: n = 2 list1 = [string[i: i + n] for i in range(0, len(string), n)] 返回列表 1 打印(

回答 3 投票 0

将摘要 (Unsigned char*) 转换为 C 中的 int 值

我正在使用 SHA512 来获取一些消息的摘要。我想将摘要转换为 int(可能是 512 位的 int)。我写代码,但我注意到我总是得到 0 作为答案。我写代码机器人...

回答 0 投票 0

如何从套接字正确读取结构字符

我正在尝试通过套接字从服务器接收两个 int 和三个 char 的结构变量。我从普通的 c++ server.cpp 程序发送它并在 Qt creator 的 mainWindow.cpp 中接收它

回答 0 投票 0

指针存储字符串的char数组

我正在研究 c 中的指针到数组,一切都很好,直到我遇到这段代码 *names 是指针数组,它应该存储那些指向 char 的地址,但它存储字符串可以有人

回答 4 投票 0

(C) 如何在 getenv() 之后包含目录路径?

我一直在尝试弄清楚如何(在 C 中)将“getenv()”和“/filetest”放入一个字符中。 我认为您可以通过以下方式做到这一点: char *file = getenv("家") + &

回答 2 投票 0

如何将单词中的第一个字母向前移动一定量,Java

我是编码新手,需要一些帮助来完成作业。它指定我们需要从文件中获取字符串,并将字母向前移动一定量。这是我正在努力的部分......

回答 2 投票 0

在现实生活中,C 指针比其他类型更好的例子是什么? / 在什么情况下你需要 malloc()?

在现实生活中你需要什么案例 char *c = "你好,世界!"; 多于 char c[] = "你好,世界!"; 我不仅在谈论你好,世界!但总的来说。 \ 第二题...

回答 2 投票 0

Java:为什么 char1|=char2 不等于 char1=char1|char2? [重复]

例如,我们有 字符 char1 = 0, char2 = 0; 这很好用: 字符 1 |= 字符 2; 这不会: 字符 1 = 字符 1 |字符2; 后者导致“错误:不兼容的类型:可能有损转换......

回答 0 投票 0

删除char数组末尾''的问题

在上面的程序中,我尝试在 full_name 的末尾删除 ' ',不是超级的,valgrind 给了我以下错误: 但是,当我移动 full_name 定义的代码段时...

回答 0 投票 0

在 C 语言中将数字从字符转换为整数

我正在阅读 C 编程教科书 1,在 1.6 中,他们说包含数字的 char 和 int 之间的转换可以像这样完成: char 字符 = '7'; int integerChar = 字符...

回答 5 投票 0

java中的有效括号,中间有char

这是我尝试在方括号之间实现像“a,b,c”这样的字符的代码,如果方括号正确关闭,stll 会返回 true 我需要在 Stack 之间输入字符 ( ) ,...

回答 0 投票 0

如何使用 fstream 读取和保存' ' 当它更改为 .txt 文件中的新行时作为字符?

假设 .txt 文件有两行,如下所示: 嗨,X 再见 我希望向量包含 ['H', 'i', ',', ' ', 'X', ' ', 'B', 'y', 'e'], 但我无法让 fstream 记录 ' ' 作为一个字符 ...

回答 1 投票 0

字符串问题。包含特殊字符

我有一个对象列表,这些对象有一个名为 Date 的属性,它实际上是一个字符串(不是我的错,我无法更改它)。 ObjectsList[0].Date 返回“08/07/2014 07:55:00”,但是 ...

回答 2 投票 0

使用 strcat() 连接字符串时出现段错误

我想使用 strcat 将存储在结构中的每个新标签与 char tags_cell_concat 中的 char 成员连接起来,如下所示: #包括 #包括 #包括 我想使用 strcat 将存储在结构中的每个新标签与 char tags_cell_concat 中的 char 成员连接起来,如下所示: #include <stdio.h> #include <string.h> #include <stdlib.h> #define BUFDATE 50 #define BIGBUFFLEN 1024 typedef struct { char date[BUFDATE]; char tags[BUFDATE]; char task[BUFDATE]; char next_step[BUFDATE]; } Record; int main() { Record *records = (Record *) malloc(2*sizeof(Record)); // all tags: "Hello world I am a string slice function" strcpy(records[0].tags, "Hello world"); strcpy(records[1].tags, "string slice"); strcpy(records[2].tags, "function"); char tags_cell_concat[BIGBUFFLEN] = {0}; char *chunk; char *pointer; for (size_t i=0; i<3; i++){ strcat(tags_cell_concat, " "); pointer = records[i].date; while ((chunk = strsep(&pointer, " ")) !=NULL) { printf("%s\n", chunk); } if (strstr(tags_cell_concat, chunk) != NULL) { strcat(tags_cell_concat, chunk); } } return 0; } 我在运行时遇到分段错误 编辑 在下面的评论和回答之后,上面的代码(我没有更改)确实存在第一个问题,因为没有为records分配足够的空间。我更改了代码以分配足够的内存,但问题仍然存在。如果第 36-39 行被注释掉,段错误问题就会消失,这向我表明问题可能出在使用 strcat() 函数时: #include <stdio.h> #include <string.h> #include <stdlib.h> #define BUFDATE 50 #define BIGBUFFLEN 1024 typedef struct { char tags[BUFDATE]; } Record; int main() { size_t size = 6; Record *records = (Record *) malloc(size*sizeof(Record)); strcpy(records[0].tags, "tag1 tag2"); strcpy(records[1].tags, "tag3"); strcpy(records[2].tags, "tag4 tag2"); strcpy(records[3].tags, "tag1 tag5"); strcpy(records[4].tags, "tag6 tag3"); strcpy(records[5].tags, "tag7 tag2"); strcpy(records[6].tags, "tag8 tag5"); char tags_cell_concat[BIGBUFFLEN] = {0}; char *chunk; char *pointer; for (size_t i=0; i<size; i++){ strcat(tags_cell_concat, " "); pointer = records[i].tags; while ((chunk = strsep(&pointer, " ")) !=NULL) { printf("%s\n", chunk); } if (strstr(tags_cell_concat, chunk) != NULL) // line to comment out and get no seg fault { // line to comment out and get no seg fault strcat(tags_cell_concat, chunk); // line to comment out and get no seg fault } // line to comment out and get no seg fault } return 0; } 这是现在的输出: tag1 tag2 make: *** [runc] Segmentation fault: 11 编辑2 我再次更改了代码,因为我删除了记录中的一个记录,以便它对应于分配的内存。此外,我在 if 语句中检查 chunk 是否不是 NULL(使用 (chunk !=NULL) 是否正确?)。但问题仍然存在。这是代码的最新版本: #include <stdio.h> #include <string.h> #include <stdlib.h> #define BUFDATE 50 #define BIGBUFFLEN 1024 typedef struct { char tags[BUFDATE]; } Record; int main() { size_t size = 6; Record *records = (Record *) malloc(size*sizeof(Record)); strcpy(records[0].tags, "tag1 tag2"); strcpy(records[1].tags, "tag3"); strcpy(records[2].tags, "tag4 tag2"); strcpy(records[3].tags, "tag1 tag5"); strcpy(records[4].tags, "tag6 tag3"); strcpy(records[5].tags, "tag7 tag2"); char tags_cell_concat[BIGBUFFLEN] = {0}; char *chunk; char *pointer; for (size_t i=0; i<size; i++){ strcat(tags_cell_concat, " "); pointer = records[i].tags; while ((chunk = strsep(&pointer, " ")) !=NULL) { printf("%s\n", chunk); } if ((strstr(tags_cell_concat, chunk) != NULL) && (chunk !=NULL)) // line to comment out and get no seg fault { // line to comment out and get no seg fault strcat(tags_cell_concat, chunk); // line to comment out and get no seg fault } // line to comment out and get no seg fault } return 0; } 您仅将内存分配给类型为 Record. 的两个元素的数组 Record *records = (Record *) malloc(2*sizeof(Record)); 所以访问数组元素的有效索引范围是[0, 1]。 但是您使用无效索引2访问数组的元素 // all tags: "Hello world I am a string slice function" strcpy(records[0].tags, "Hello world"); strcpy(records[1].tags, "string slice"); strcpy(records[2].tags, "function"); 导致未定义的行为。 以及这个 for 循环中的条件 for (size_t i=0; i<3; i++){ 也是无效的。 错误的原因之一是您使用了像2和3这样的幻数。而是使用命名常量。 也不是数组元素的所有数据成员都被初始化。所以这些陈述 pointer = records[i].date; while ((chunk = strsep(&pointer, " ")) !=NULL) { printf("%s\n", chunk); } if (strstr(tags_cell_concat, chunk) != NULL) { strcat(tags_cell_concat, chunk); } 还调用未定义的行为。

回答 1 投票 0

C# 如果用户选择了“隐藏”功能,则将字符串中的每个字符设置为星号 (*)

正在学习C#。只是想知道如果用户选择隐藏密码的可见性,是否可以将字符串中的所有字符设置为星号。这就是我的...

回答 3 投票 0

用指针操作二维数组

我正在尝试使用指针来操作一些二维数组,我知道指针的基础知识但是我在使用这段代码时遇到了困难: { char a[3][10] = { "Malek", "Zied"...

回答 1 投票 0

Flutter Dart - 不间断空间完全不产生空间

我正在尝试使用不间断空格,以便将品牌名称保持在同一行。 我已经成功实施了此处找到的解决方案:https://stackoverflow.com/a/67049738 但是不破...

回答 1 投票 0

在 C 中初始化固定的字符串数组并在运行时向其添加条目

我在 C 中声明了字符串数组,如下所示 静态结构 userRolesUpdatePost { 字符用户名[32+1]; 字符用户组[16][32+1]; 无符号整数有效时间; }userRolePost; ...

回答 1 投票 0

在 C 中将字符串拆分为相等的整数

我正在尝试将 1 和 0 的 16 长度字符数组拆分为 2 个等长整数,以便将 8 位二进制转换为十进制。 例子: 字符*海峡=“0001011011110000” 预期结果: 在...

回答 2 投票 0

十六进制打印字符数组 - C++ [关闭]

我想打印这个字节数组命令(十六进制格式),我需要将它声明为一个字符数组。 这是我的尝试,但我收到的只是一串零! #包括 #在...

回答 0 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.