|
发表于 2023-11-22 10:48:58
|
显示全部楼层
[b]- #include <stdio.h>
- #include <string.h>
- int main(void)
- {
- /*******[color=Red]Begin[/color]*******/
- char ch[100][100] = {""};
- int a, b, n;
- for (a = 0; a < 100; a++) {
- gets(ch[a]);
- if (strcmp(ch[a], "stop") == 0) {
- break;
- }
- }
- for (b = 0; b < a; b++) {
- n = strlen(ch[b]);
- printf("%d name\n", n);
- }
- /*******[color=Red]End[/color]********/
- return 0;
- }
复制代码
在这个代码中,主要的问题是 char ch[][100]={"\0"}; 这一行的声明方式不正确,应该使用 char ch[100][100] = {""}; 来声明一个二维字符数组。另外, gets 函数已经被标记为不安全,应该使用 fgets 函数来代替。此外, if(ch[a]=="stop") 这一行使用了错误的字符串比较方式,应该使用 strcmp 函数来比较字符串。最后, n=strlen(ch); 这一行应该在循环内部进行,以确保只对有效输入进行字符串长度的计算。 |
|