Tag: 字符串

有效地将字符串插入另一个字符串

我有 char aa[] = { “Hello, !” }; char bb[] = { “World” }; 如何使用cstring将bb最有效地插入aa?

计算字符在C中的字符串中出现的次数

我是C的新手,我正在努力实现自己的explode 。 我正在尝试计算字符串中出现指定字符的次数。 int count_chars(char * string, char * chr) { int count = 0; int i; for (i = 0; i < sizeof(string); i++) { if (string[i] == chr) { count++; } } return count; } 它每次只返回0。 有人可以解释原因吗? 🙂

从C字符串中删除多余的空格?

我已经在C字符串数组中读了几行文本。 这些行有任意数量的制表符或空格分隔的列,我试图弄清楚如何删除它们之间的所有额外空格。 最终目标是使用strtok来分解列。 这是列的一个很好的例子: 卡特赖特温迪93 威廉姆森马克81 汤普森马克100 安德森约翰76 特纳丹尼斯56 如何消除列之间的所有空格或制表符,以便输出看起来像这样? 卡特赖特温迪93 或者,我可以用不同的字符替换列之间的所有空格,以便使用strtok吗? 像这样的东西? 卡特赖特#温迪#93 编辑:多个很棒的答案,但必须选择一个。 谢谢大家的帮助。

是否有任何strcpy_s和/或TR24731-1的免费实现?

我有一个混合了C和C ++的旧项目。 它广泛使用C字符串以及strcpy , strcat , strncpy , strncat等。我发现了许多缓冲区溢出,我想使用更安全的函数,例如strcpy_s 。 MSVC包含这些function,但我需要能够在各种平台上运行的东西 – 至少是linux,osx和windows。 我知道strlcpy ,但是很多人都注意到( 例子 ),这确实不是一个改进。 那么:是否有strcpy_s , strcat_s等或整个TR24731-1免费实现? 我需要一些public domain或BSD ,但如果你知道其他许可证下的实现,请继续列出它们 – 我相信别人会受益。

使用stdlib的qsort()对字符串数组进行排序

一些序言:我是一名计算机工程专业的学生,​​经过3个学期的Java(直到数据结构),在C学习第一堂课。 这个问题与家庭作业有关,但是为我解决了几个步骤。 我有一个输入文件,我读入内存,它存储在char [9] [500]。 我读入最多500个最大长度为8的字符串。我试图使用stdlib内置的qsort()函数对这个数组进行排序,并且有一些内存错误。 重要的代码片段: char data[4][500][60]; char debug[500][9]; size_t count = 0; /* initialize file, open for reading */ FILE* pUserlog; pUserlog = fopen(“userlog”,”r”); while(!feof(pUserlog)) { fscanf(pUserlog, “%9s %8s %16s”,debug[count], data[1][count], data[2][count]); fgets(data[3][count], 60, pUserlog); count++; } 本节将数据读入数组。 这部分感兴趣的数组是“debug”。 这是上面指定的数组。 这是我的qsort比较函数: int compare(const void* a, const void* b) { const char **ia […]

确定字符串文字的长度

给定一个指向字符串文字的指针数组: char *textMessages[] = { “Small text message”, “Slightly larger text message”, “A really large text message that ” “is spread over multiple lines” } 如何确定特定字符串文字的长度 – 比如第三个? 我尝试使用sizeof命令如下: int size = sizeof(textMessages[2]); 但结果似乎是数组中指针的数量,而不是字符串文字的长度。

C比较指针(与字符)

晚上好,我有2个函数,每个函数都接受一个指向char的指针作为参数: char pointer[255]; func1(char* pointer) { … memcpy(pointer,some_char,strlen(something)); return; } func2(char* pointer) { … if (pointer==someother_char) exit(0); //FAILs //also I have if(pointer==someother_pointer2char); // FAILs } 现在我尝试过strstr,strcmp等……不行。 想尝试memcmp,但我没有静态len。 因为我必须将char *与char和char *比较为char *我需要两种解决方案吗? 那么,如何以最短的方式比较这些指针(实际上是指针)? 谢谢。 编辑 感谢wallacer和Code Monkey现在用于char * to char比较我使用以下: func1(char* ptr){ char someother_char[255]; char *ptr_char = NULL; //I have to strcmp a few values so […]

在C字符串中包含双引号(“)

我想在C中定义一个包含以下字符集的变量字符串: a-zA-Z0-9′-_” 。 所以我会这样做: char str[64] = “abcdefghijklmnopqrstuwxyzABCDEFGHIJKLMNOPQRSTUWXYZ0123456789′-_”” 正如你所看到的那样,问题最终是”性格”。 问题1:我该如何解决这个问题? 问题2:有没有比我更好的方法来定义这样的字符串? PS:我真的不知道如何标题我的问题,所以如果你有更好的问题,请编辑它。

如何在C中将字符串转换为hex值

我有字符串“6A”我怎么能转换成hex值6A? 请帮我解决C语言的问题 我试过了 char c[2]=”6A” char *p; int x = atoi(c);//atoi is deprecated int y = strtod(c,&p);//Returns only first digit,rest it considers as string and //returns 0 if first character is non digit char.

strcpy和stpcpy有什么区别?

在阅读strcpy的手册页时,我发现函数stpcpy也存在。 但是,我在手册页中注意到的唯一区别是: char * stpcpy(char *s1, const char *s2); char * strcpy(char *restrict s1, const char *restrict s2); 那么, restrict在这里意味着什么?