怎么解决,急,求助
//有一片文章,共有3行文字,每行有80个字符。要求分别统计出其中英文大写字母、小写字母、数字、空格以及其他字符得个数。#include<stdio.h>
void main()
{
char a;
int i,n,k,b,c,d,e,f;
gets(a);
for(i=0;i<3;i++)
{
for(k=0;k<80;k++)
{
if(a>='48' &&a<='57')
{
b++;
}
else
if(a>='65' &&a<='90')
{
c++;
}
else
if(a>='97' &&a<='122')
{
d++;
}
if(a=='0')
{
e++;
}
else
f++;
}
}
printf("数字的个数是:%d\n",b);
printf("大写字母的个数是:%d\n",c);
printf("小写字母的个数是:%d\n",d);
printf("空格的个数是:%d\n",e);
printf("其他字符的个数是:%d",f);
} 你输入的字符串呢?连输入都没有怎么统计?还是说你准备使用文件导入? E:\Users\admin\Documents\VScode\Code\tmp\text.txt
0123456789
ASDFGHJKLL
asdfghjkll
!@#$%^&*()
#include <stdio.h>
#include <ctype.h>
#include <stdlib.h>
int main(int argc, char const *argv[])
{
FILE *fp = fopen("E:/Users/admin/Documents/VScode/Code/tmp/text.txt", "r");
if (fp == NULL)
{
perror("file opend fail");
exit(1);
}
char str = {0};
fread(str, sizeof(char), 255, fp);
fclose(fp);
printf("文件内容:\n%s\n", str);
int ct = {0};
for (char *i = str; *i != '\0'; i++)
{
if (isdigit(*i))//统计数字
{
ct++;
}
if (islower(*i))//统计小写字母
{
ct++;
}
if (isupper(*i))//统计大写字母
{
ct++;
}
if (isspace(*i))//统计空格
{
ct++;
}
if (ispunct(*i)) //统计除去数字,字母,空白字符以外的字符
{
ct++;
}
}
printf("数字的个数是:%d\n", ct);
printf("大写字母的个数是:%d\n", ct);
printf("小写字母的个数是:%d\n", ct);
printf("空格的个数是:%d\n", ct);
printf("其他字符的个数是:%d", ct);
}
=========================================================
Microsoft Windows [版本 10.0.18363.476]
(c) 2019 Microsoft Corporation。保留所有权利。
E:\Users\admin\Documents\VScode\Code>c:\Users\admin\.vscode\extensions\ms-vscode.cpptools-0.26.2\debugAdapters\bin\WindowsDebugLauncher.exe --stdin=Microsoft-MIEngine-In-yrmjek43.tit --stdout=Microsoft-MIEngine-Out-frlhiicr.hcb --stderr=Microsoft-MIEngine-Error-mkn4tkug.gke --pid=Microsoft-MIEngine-Pid-pjgpyktx.jz3 --dbgExe=D:\MinGW\bin\gdb.exe --interpreter=mi
文件内容:
0123456789
ASDFGHJKLL
asdfghjkll
!@#$%^&*()
数字的个数是:10
大写字母的个数是:10
小写字母的个数是:10
空格的个数是:3
其他字符的个数是:10
E:\Users\admin\Documents\VScode\Code> 李龙江 发表于 2019-12-3 21:45
你输入的字符串呢?连输入都没有怎么统计?还是说你准备使用文件导入?
回错对象了............ {:7_133:}🆗厉害 但是我用c语言好像编译不了哦 第十七行是有一点问题吗还是我的编译器有问题 李龙江 发表于 2019-12-3 21:45
你输入的字符串呢?连输入都没有怎么统计?还是说你准备使用文件导入?
就是用文件导入的这一种 #include <stdio.h>
#include <ctype.h>
#include <stdlib.h>
#include <string.h>
void strFromFile(const char *Faddr, char *str, size_t sz)
{
FILE *fp = fopen(Faddr, "r");
if (fp == NULL)
{
perror("file opend fail");
exit(1);
}
fread(str, sizeof(char), sz, fp);
fclose(fp);
printf("文件内容:\n%s\n", str);
int ct = {0};
for (char *i = str; *i != '\0'; i++)
{
if (isdigit(*i)) //统计数字
{
ct++;
}
if (islower(*i)) //统计小写字母
{
ct++;
}
if (isupper(*i)) //统计大写字母
{
ct++;
}
if (isspace(*i)) //统计空格
{
ct++;
}
if (ispunct(*i)) //统计除去数字,字母,空白字符以外的字符
{
ct++;
}
}
printf("\n数字的个数是:%d\n", ct);
printf("大写字母的个数是:%d\n", ct);
printf("小写字母的个数是:%d\n", ct);
printf("空格的个数是:%d\n", ct);
printf("其他字符的个数是:%d", ct);
}
int main(int argc, char const *argv[])
{
char *addr = "E:/Users/admin/Documents/VScode/Code/tmp/text.txt";
char str = {0};
strFromFile(addr, str, 255);
return 0;
}
=======================================
Microsoft Windows [版本 10.0.18363.476]
(c) 2019 Microsoft Corporation。保留所有权利。
E:\Users\admin\Documents\VScode\Code>c:\Users\admin\.vscode\extensions\ms-vscode.cpptools-0.26.2\debugAdapters\bin\WindowsDebugLauncher.exe --stdin=Microsoft-MIEngine-In-zvxmiasy.a5t --stdout=Microsoft-MIEngine-Out-mw4zhur4.fpl --stderr=Microsoft-MIEngine-Error-w42cggib.yph --pid=Microsoft-MIEngine-Pid-kfg3knrd.cvb --dbgExe=D:\MinGW\bin\gdb.exe --interpreter=mi
文件内容:
0123456789
ASDFGHJKLL
asdfghjkll
!@#$%^&*()
数字的个数是:10
大写字母的个数是:10
小写字母的个数是:10
空格的个数是:3
其他字符的个数是:10
E:\Users\admin\Documents\VScode\Code> 静心五 发表于 2019-12-3 22:26
第十七行是有一点问题吗还是我的编译器有问题
我也是17行欸,你解决了吗
页:
[1]