我想用下面的代码来读取一个句子(字符串),然后显示句子的单词。它不显示,因为它应该。我究竟做错了什么?在C中使用字符串数组
#include <stdio.h>
#include <string.h>
#define N 100
int main()
{
char s[N];
char words[N][N];
int i=0;
int j=0;
printf("s=");
gets(s);
while ((i<strlen(s)) && (s[i]!='.'))
{
while (s[i]!= ' ')
{
sprintf(words[j],"%c", s[i]);
i++;
}
j++; i++;
}
for (i=0;i<j;i++) printf("%s ", words[i]);
return 0;
}
通常我们在这些情况下使用调试器...... – pmod
不要让我们猜测什么是错的。描述输入,预期输出和实际输出。 –
'sprintf(words [j],“%c”,s [i])'既不多也不少于'words [j] [0] = s [i];字[j]的[1] = 0'。除了每个单词的第一个位置,你永远不会分配任何其他地方。 –