C 我想打印输入字符串中以空格分隔的单词

C 我想打印输入字符串中以空格分隔的单词,c,arrays,string,while-loop,C,Arrays,String,While Loop,我的代码有问题,当它进入内部while循环时,它停止工作,它应该打印单个单词。例如,字符串是“My name is jack”,输出应该是 我的名字是杰克,每一个单词后面都有新行 int main (void) { int i=0,j=0; char paragraph[1000],word[100]; printf("Enter the paragraph:\n"); gets(paragraph); while(paragraph[i]!='\0') { int res = iss

我的代码有问题,当它进入内部while循环时,它停止工作,它应该打印单个单词。例如,字符串是“My name is jack”,输出应该是 我的名字是杰克,每一个单词后面都有新行

int main (void)
{
int i=0,j=0;
char paragraph[1000],word[100];
printf("Enter the paragraph:\n");
gets(paragraph);

while(paragraph[i]!='\0')
{
    int res = isspace(paragraph[i]);
    if (res != 0)
    {
        word[i]='\0';
        printf("\n");
        j=0;
        while(word[j] !='\0')
        {
            printf("%s",word[j]);
            j++;
        }
        j=0;
    }
    word[j] = paragraph[i];
    i++;
    j++;
}
return 0;
}
#包括
#包括
int main()
{
char-str1[100];
char newString[10][10];
int i,j,ctr;
printf(“\n\n按空格将字符串拆分为单词:\n”);
printf(“---------------------------------------\n”);
printf(“输入字符串:”);
fgets(str1,str1大小,标准蛋白质);
j=0;ctr=0;

对于(i=0;iplz显示段落[]和word[]的声明,我看不到任何地方定义了
段落
。请打开编译器警告并注意它们。
printf(“%s”,word[j]”)
将字符当作字符串使用。按照现在的代码方式,
段落
未初始化。正如我所说,请提供一个。我们应该能够复制您的代码,编译它并得到相同的错误。您应该打开编译器标志
-Wall-Wextra
并阅读警告。他们会告诉您出了什么问题。不要告诉我们e
获取
。它已从现代C中删除,因为它很危险。请改用
fgets
#include <stdio.h>
#include <string.h>
int main()
{
    char str1[100];
    char newString[10][10]; 
    int i,j,ctr;
       printf("\n\n Split string by space into words :\n");
       printf("---------------------------------------\n");    

    printf(" Input  a string : ");
    fgets(str1, sizeof str1, stdin);    

    j=0; ctr=0;
    for(i=0;i<=(strlen(str1));i++)
    {
        // if space or NULL found, assign NULL into newString[ctr]
        if(str1[i]==' '||str1[i]=='\0')
        {
            newString[ctr][j]='\0';
            ctr++;  //for next word
            j=0;    //for next word, init index to 0
        }
        else
        {
            newString[ctr][j]=str1[i];
            j++;
        }
    }
    printf("\n Strings or words after split by space are :\n");
    for(i=0;i < ctr;i++)
        printf(" %s\n",newString[i]);
    return 0;
}