解答一下什么意思

来源:百度知道 编辑:UC知道 时间:2024/05/17 05:20:31
#include<string.h>
#include<stdio.h>
void fun(char str[][10],int m,char *s)
{int j,q,i;
for(j=0;j<m;j++)
{q=strlen(str[j]);
for(i=0;i<q;i++)
s[i]=str[j][i];
s+=q;
s[0]=0;/***???????***/
}
}
main()
{int n,t;
char a[10][10],p[120];
printf("输入n");
scanf("%d",&n);
gets(s[0]);/*****????????*****/
printf("输入字符");
for(t=0;t<n;t++)
gets(s[t]);
fun(s,n,p);
printf("%s",p);
}
上面有2处标志/*?*/的地方 不明白为什么 第2个问好的地方可以取消么
for(t=0;t<n;t++)
gets(s[t]);
后面已经有这个语句了

个人认为,
s[0]=0; 应改成 s[0]='\0';

gets(s[0]); 此处分明是个错误。程序中没有定义S的全局变量,主函数中也没定义S变量。未定义便使用,决对是错的。

s[0]=0;/*把字符串结束标志(即ASCII码为0的字符)存入s[0]*/

gets(s[0]);/*为s[0]字符数组读入一个字符串,s应该是个二维字符数组,但是main()函数中没有s的定义语句,同时也没有一个名为s的全局变量,故此处疑似程序有误。*/