有一篇文章,共有3行文字,每行有个80字符.要求分别统计出其中英文大写字母,小写字母,空格和其他字符个数

供稿:hz-xin.com     日期:2025-01-21
求助大神。C语言题目:有一篇文章,共有3行文字,每行有个80字符.要求分别统计出其中英文大写字母、小写

1、gets(str[i][j]); 这一句中j没赋值,而且把字符串送给一个字符型二维数组的元素是行不通
的,通不过编译;

你可以改成gets(str[i]),但是只能输入一行,因为gets()虽然不会将空格识别
为'\0',但它把回车视为'\0';

这一句最好改成for(;i<=2;gets(str[i]),i++);,这里分号别忘了,表示for的循环是
空语句,实际起作用的是第三项里的表达式,结束后i=2,下一句for语句要把i
再次赋0。
2、while(str[i][j]!='\0') 这一句中j同样没赋值,通不过编译;

你可以将这一句去掉,把下面for(j=0;j<=1;j++)这一句改成
for(j=0;j<=1&&str[i][j]!='\0';j++)。
程序变为:

#include
#include
int main()
{
char str[3][2];
int space=0,letter=0,digit=0,other=0;
int i=0,j;
for(i=0;i<=2;gets(str[i]),i++); //这一句变了
/*while(str[i][j]!='\0')*/ //这一句去掉了
for(i=0;i<=2;i++) //这一句i重新赋0
{
for(j=0;j<=1&&str[i][j]!='\0';j++) //这一句变了
if((str[i][j]='A')||(str[i][j]='a'))
letter++;
else if (str[i][j]='0')
digit++;
else if (str[i][j]==' ')
space++;
else
other++;
}
printf("space=%3d,letter=%3d,digit=%3d,other=%3d",space,letter,digit,other);
return 0;
}

#include
int main()
{int i,j,upp,low,dig,spa,oth;
char text[3][80];
upp=low=dig=spa=oth=0;
for (i=0;i<3;i++)
{ printf("please input line %d:
",i+1);
gets(text[i]);
for (j=0;j<80 && text[i][j]!='\0';j++)
{if (text[i][j]>='A'&& text[i][j]<='Z')
upp++;
else if (text[i][j]>='a' && text[i][j]<='z')
low++;
else if (text[i][j]>='0' && text[i][j]<='9')
dig++;
else if (text[i][j]==' ')
spa++;
else
oth++;
}
}
printf("
upper case: %d
",upp);
printf("lower case: %d
",low);
printf("digit : %d
",dig);
printf("space : %d
",spa);
printf("other : %d
",oth);
return 0;
}

#include <stdio.h>
#include <string.h>
#include <CTYPE.H>
#define N 3
#define M 100
int main()
{ char c[N][M];
int i,j;
int d,x,s,k,q;
d = x = s = k = q = 0;
for(i = 0;i < N;i++)
{ printf("请输入第%d行:\n",i + 1);
gets(c[i]);
}
puts(c[0]);
printf("\n");
for(i = 0;i < N;i++)
for(j = 0;j < M;j++)
{ if(isupper(c[i][j])) d++;
else if(islower(c[i][j])) x++;
else if(isdigit(c[i][j])) s++;
else if(isspace(c[i][j])) k++;
else q++; }
printf("英文大写字母有:%d个\n", d);
printf("英文小写字母有:%d个\n", x);
printf("数字有:%d个\n", s);
printf("空格有:%d个\n", k);
printf("其他字符有:%d个\n", q);
puts (strupr(c);
return 0;
}

strcat(str0,str1);strcat(str0,str2);strcat(str0,str3);

改为:
strcpy(str0,str1);
strcat(str0,str2);
strcat(str0,str3);

c语言 有有一篇文章,共有3行文字,每行有80个字符。要求分别统计出其中...
include <stdio.h> int main(){int i,j,upp,low,dig,spa,oth;char text[3][80];upp=low=dig=spa=oth=0;for (i=0;i<3;i++){ printf("please input line %d:\\n",i+1);gets(text[i]);for (j=0;j<80 && text[i][j]!='\\0';j++){if (text[i][j]>='A'&& text[...

一篇文章共3行文字每行有80个字符分别统计出其中英文大写字母,小写字母...
用正则匹配啊:代码 执行结果

有一篇文章,共有3行文字,每行有80个字符。要求分别统计其中英文大写字 ...
我只能猜测,你的那个“<”写的有问题,你试试从下面的“<”复制粘贴过去。。。

从键盘输入一段英文,统计并输出单词个数
\/\/有一篇文章,共有3行文字,每行有80个字符。要求分别统计出其中英文大写字母、小写字母、数字、空格以及其他字符的个数。include <iostream.h> include <stdio.h> void main(){ char ch[3][80];cout<<"请输入短文,每行80个字符,回车结束:"<<endl;for(int i=0;i<3;i++)gets(ch[i])...

有一篇文章,共有3行文字,每行最多不超过80个字符,请分别统计出其中英文...
a=0; \/\/ 小写字母 b=0; \/\/大写字母 c=0; \/\/数字 d=0; \/\/空格 s[]='要统计的内容'for(i=0;s[i]!='\\0';i++){ if(s[i]<='z' and s[i]>='a')a++;if(s[i]<='Z' and s[i]>='A')b++;if(s[i]<='9' and s[i]>='0')c++;if(s[i]=='...

“有一篇文章,共有3行文字,每行80字符。要求分别统计其中英文大写字母...
for (i=0;i<3;i++){ for (j=0;j<80;j++){ 这里有问题吧 ,C++不是很懂

一篇短文,3行文字,每行80个字符。求统计出英文大写字母、小写字母、数...
后面的代码没有问题,截图中的代码在其他字符个数:\\n中少%d。

有一篇文章 共有3行文字每行最多20个字符 要求分别统计其中英文 大写...
tent, your quarters!” and she threw open

一篇文章,共有n行文字,每行有m个字符.要求分别统计出其中英文大写字母...
include<iostream> using namespace std;int main(){ int n,m;int a,b,c,d,e;a=b=c=d=e=0;cin>>n>>m;getchar(); \/\/新增一行 char x[n][m];for(int i=0;i<n;gets(x[i]),i++); \/\/有改动 for(int i=0;i<n;i++){ for(int j=0;j<m&&x[i][j]!='\\0...

word文档为什么在每行前面有个数字
word文档在每行前面有个数字是设置了编号。具体解决步骤如下:我们需要准备的材料分别是:电脑、Word文档。1、首先我们打开需要编辑的Word文档。2、然后点击打开开始子菜单栏中的“编号”后面的倒三角形。3、然后我们在弹出来的窗口中点击选择“无”即可去除前面的数字。