字符串输出问题
本帖最后由 yizhancs 于 2021-3-7 14:40 编辑#include<stdio.h>
#include<string.h>
int main()
{
char a,i,j,sum1=0,sum2=0,word=0;
printf("请输入三行文字:\n");
for (i = 0; i < 3; i++)
{
for (j = 0; j < 10; j++)
{
scanf("%c",&a);
}
}
printf("三行文字如下所示:\n");
for (i = 0; i < 3; i++)
{
for (j = 0;j <10&&a!='\0'; j++)
{
putchar(a);
}
}
printf("\n");
for (i = 0; i < 3; i++)
{
for (j = 0; j < 10 && a != '\0'; j++)
{
if (a == ' ')
{
sum1++;
word = 0;
}
else if (word == 0)
{
sum2++;
word = 1;
}
}
}
printf("空格的个数为%d,单词的个数为%d.", sum1, sum2);
}
输出最后一行的字符串时,最后几个字符直接消失了 sum1,sum2定义错了吧 黎明zxc 发表于 2021-3-7 14:35
sum1,sum2定义错了吧
这个我还注意到,谢谢噢。我主要的问题是输入三行字符串,最后一行会有几个字符不会输出 yizhancs 发表于 2021-3-7 14:42
这个我还注意到,谢谢噢。我主要的问题是输入三行字符串,最后一行会有几个字符不会输出
比如说输入
ii ss aa a
ww ee ccc
uu aa aaa
输出的就是
ii ss aa a
ww ee ccc
uu aa a 本帖最后由 巴巴鲁 于 2021-3-7 20:14 编辑
#include<stdio.h>
#include<string.h>
int main()
{
char a,ch;
int i,j,sum1=0,sum2=0;
printf("请输入三行文字:\n");
for (i = 0; i < 3; i++)
{
j = 0;
while((ch = getchar()) != '\n')
{
a = ch;
}
a = '\0';
}
printf("三行文字如下所示:\n");
for (i = 0; i < 3; i++)
{
puts(a);
}
printf("\n");
for (i = 0; i < 3; i++)
{
for (j = 0; j < 10 && a != '\0'; j++)
{
if (a == ' ')
{
sum1++;
}
else if ((a >= 'a' && a <= 'z') || (a >= 'A' && a <= 'Z'))
{
sum2++;
}
}
}
printf("空格的个数为%d,单词的个数为%d.", sum1, sum2);
}
页:
[1]