C 读取字符串短语并将单词放入多维数组
我试图读取一个字符串,并将短语字符串中的每个单词放入多维数组中,分隔符字符是空格 有些代码似乎可以工作,但最后一个字没有存储在数组中 输入: $string 1:pop 输出 流行音乐 完整字符串:pop 第一:流行音乐 第二名:流行音乐 第三名:流行音乐 第四: 空间数:3C 读取字符串短语并将单词放入多维数组,c,C,我试图读取一个字符串,并将短语字符串中的每个单词放入多维数组中,分隔符字符是空格 有些代码似乎可以工作,但最后一个字没有存储在数组中 输入: $string 1:pop 输出 流行音乐 完整字符串:pop 第一:流行音乐 第二名:流行音乐 第三名:流行音乐 第四: 空间数:3 问题似乎在for循环中,我应该使用ibecause,而t[k]!=''{over run.Check不足。在第三个空格后不停止。访问超出了数组的有效范围。请在t[k]&&t[k]!='{pop-pop表示{p'、'o'、'
问题似乎在for循环中,我应该使用ibecause,而t[k]!=''{over run.Check不足。在第三个空格后不停止。访问超出了数组的有效范围。请在t[k]&&t[k]!='{pop-pop表示{p'、'o'、'p'、'o'、'p'、'\0'}.\0'等于0并计算为false。而t[k]&&t[k]!='{而t[k]!='\0'&&t[k]!='{两者都将起作用。它们被视为相同。
int countS (char s[]){
int i,k;
i=0;
k=0;
while(s[i]!='\0'){
if((int) s[i]==32){
k++;
}
i++;
}
return k;
}
int main () {
int i, k, j, space;
char t[100];
printf("string 1: \n");
scanf("%100[0-9a-zA-Z ]", t);
space = countS(t);
char s[space+1][10];
for(i=0, k=0; i<space; i++){
j=0;
while (t[k]!=' '){
s[i][j]=t[k];
j++;
k++;
}
k++;
s[i][j]='\0';
}
printf("Full String:%s\n1st Word:%s \n2nd word:%s \n3rd word:%s \n4th Word:%s \n number of spaces: %d \n", t,s[0],s[1],s[2],s[3], countS(t));
}