Closed. This question is off-topic。它当前不接受答案。
                            
                        
                    
                
                            
                                
                
                        
                            
                        
                    
                        
                            想改善这个问题吗? Update the question,所以它是on-topic,用于堆栈溢出。
                        
                        5年前关闭。
                                                                                            
                
        
我试图通过将每个单词放入数组中来逐一读取用户输入的句子中的单词,但是我无法提出一个好的解决方案。

我试过了:

    printf("Enter your sentence: ");

    while(scanf("%s", word) != EOF)
    {
       wordArray[i] = word;
       i ++;
    }


其中wordArray是一个字符串数组,i是一个整数,而word是一个字符串。

我希望它能读取句子中的每个单词并将其放入数组中。

例如,如果我输入“ I am Mark”,我希望将这段代码放在:

"I" in wordArray[0]

"am" in wordArray[1]

"Mark" in wordArray[2]

但是,这种方法不起作用,所以有人可以给我一种方法来逐个阅读句子中的每个单词吗?

最佳答案

您不能在C中复制这样的字符串。要将字符串从一个char数组复制到另一个char数组,必须使用strcpy

但是,您必须注意,char数组对于输入的单词足够大,因此声明可能看起来

char word[256];
char wordArray[10][256];


为了防止缓冲区溢出,您应该检查索引i并为scanf指定最大字段长度

while(i < 10 && scanf("%255s", word) != EOF)
{
   strcpy(wordArray[i], word);
   i++;
}

09-28 04:40