我正在尝试读取一个字符串,并将一个短语(字符串)中的每个单词放在一个多维数组中,分隔符就是空格。
有些代码似乎有效,但最后一个字没有存储在数组中。
输入
$ string 1:pop pop pop pop
输出
pop pop pop pop
Full String:pop pop pop pop
第一:弹出
第二:弹出
第三:弹出
第四:
空格数:3
问题似乎是在for循环中,我应该使用“i< = space”,但如果我这样做,它会给我:
输出
分段错误:11
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));
}
感谢您提供的所有帮助!