读取字符串短语并将单词放入多维数组中

时间:2015-03-10 23:35:20

标签: c

我正在尝试读取一个字符串,并将一个短语(字符串)中的每个单词放在一个多维数组中,分隔符就是空格。

有些代码似乎有效,但最后一个字没有存储在数组中。

输入

  

$ 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));
}

感谢您提供的所有帮助!

0 个答案:

没有答案