|
发表于 2023-12-28 21:50:05
|
显示全部楼层
首先,你的代码有一些错误和不完善的地方。下面是修正后的代码:
- #include <stdio.h>
- #include <string.h>
- int main()
- {
- char a[100]; // 字符数组大小需要设定一个足够大的值
- memset(a, 0, sizeof(a));
- gets(a);
- int length = strlen(a); // 统计字符串长度
- // 去掉空格并找出长度最大的字符串
- char maxStr[100];
- int maxLen = 0;
- char *p = strtok(a, " ");
- while (p != NULL)
- {
- int len = strlen(p);
- if (len > maxLen)
- {
- maxLen = len;
- strcpy(maxStr, p); // 将最长的单词存储到maxStr中
- }
- p = strtok(NULL, " ");
- }
- printf("去掉空格后的字符串: %s\n", a); // 输出去掉空格后的字符串
- printf("字符串长度: %d\n", length); // 输出字符串长度
- printf("长度最大的字符串: %s\n", maxStr); // 输出最长的单词
- return 0;
- }
复制代码
这个程序可以实现你的需求:去掉输入字符串中的空格,并且统计字符串的长度,找出长度最大的字符串,并输出结果。
注意,在使用 `gets()` 函数获取输入时,需要确保输入的字符数量不超过定义的数组大小,以防止缓冲区溢出。此外, `strtok()` 函数用于分割字符串,第一次调用时传入要分割的字符串,后续调用传入 `NULL` 来继续分割字符串。在每次分割时,使用 `strlen()` 函数获取单词的长度,并与当前最长的单词长度比较。如果长度更长,则更新最长单词的长度和内容。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 |
|