C 我想打印输入字符串中以空格分隔的单词
我的代码有问题,当它进入内部while循环时,它停止工作,它应该打印单个单词。例如,字符串是“My name is jack”,输出应该是 我的名字是杰克,每一个单词后面都有新行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
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;
}