用C语言编程:在显示器上输入一段字符串,并统计出现字符的个数和各个字符出现的次数

作者&投稿:桂朗 (若有异议请与网页底部的电邮联系)
用C语言编写一个程序,输入一个字符串,统计其中各个字符出现的次数~

//输入一行字符,分别统计出其中字母、空格、数字和其他字符的个数。#includeint main(void){ char ch;int a=0,b=0,c=0,d=0;while((ch=getchar())!='
'){if(ch>='A'&&ch='a'&&ch='0'&&ch<='9')b++;else if(ch==' ')c++;else d++;}printf("字母=%d
数字=%d
空格=%d
其他字符=%d
",a,b,c,d);return 0;}

代码如下:
/*编程从键盘输入一个字符串,统计该字符串中从'a'到'z'共26个小写字母各自出现的次数,
将结果存入数组中,并输出*/
#include
#include
#define N 100
main()
{int i,j=0,c[26]={0};
char str[N];
printf("请输入一个字符串:");
gets(str);
for(i=0;i<strlen(str);i++)/*外循环扫描/遍历字符数组*/
for(j=0;j<26;j++)
if(str[i]=='a'+j)
{c[j]++;
break;
}
for(i=0;i<26;i++)
printf("%c-%d",'a'+i,c[i]);/*输出字母a-z及其出现的次数*/
}

扩展资料
字符串常量与字符数组的区别
1)字符串常量是一个字符数组,但是内容和长度在初始化时就已经固定了,不可更改;可以通过一个指向字符串常量第一个元素的指针来访问该字符串常量;
2)字符数组是一个用于存放字符的数组,字符数组的值是可以更改的。
常用字符串函数:
1、复制字符串
C 语言中使用库函数 strcpy 来进行字符串复制操作:
char *strcpy(char *dst , char const *src);
函数 strcpy 接收两个字符串参数,并将参数 src 字符串复制到 dst 参数。使用 strcpy 函数时需要注意的是,必须保证目标字符数组 dst 的长度足够存放源字符数组 src 的内容。
如果 src 比 dst 长,则 src 剩余部分的字符仍会被复制,而且它们会覆盖 dst 后面的内存空间的值,如果这除内存空间原本就存放有值,则会导致原本的数据丢失,这样会造成很严重的后果。为了解决这个问题, C 语言中提供了一种更为安全的方式来进行字符串复制操作——strncpy 函数:
char *strncpy(char *dst , char const *src , size_t len);
2、连接字符串
C 语言中使用库函数 strcat 来连接两个字符串:
char *strcat(char *dst,char const *src);
函数 strcat 将参数 src 字符串连接到参数 dst 字符串的后面。与 strcpy 函数一个同样的问题是,必须保证 dst 的剩余空间足够存放下 src 整个字符串。C 语言中提供了 strncat 函数来解决这个问题:
char *strncat(char *dst , char const *src , size_t len);
strncat 函数从 src 中最多复制 len 个字符到目标数组 dst 后面,并且,strncat 总是在结果字符串后面添加一个 NUL 字节,而且不会像 strncpy 函数那样对 dst 剩余的空间用 NUL 进行填充。

#include <stdio.h>
void main()
{
char c;
int i,letters=0,num[26]={0}; //字符的个数, 26个字符个数初始化为0
printf("请输入一段字符串:\n");
while((c=getchar())!='\n')
{
if(c>='a'&&c<='z'||c>='A'&&c<='Z')
{
letters++;
if(c>='a'&&c<='z') num[c-'a']++;
if(c>='A'&&c<='Z') num[c-'A']++;
}
}
printf("字符的个数:%d\n",letters);
printf("每个字符出现的次数:\n");
for(i=0;i<26;i++)
{
if(num[i]>0)
printf("字符%c:%d次 ",i+'a',num[i]);
}
}

#include <studio.h>
#include <string.h>
void frequency( string& s, char& A[ ], int& C[ ], int &k )
{
// s是输入字符串,数组A[ ]中记录字符串中有多少种不同的字符,C[ ]中记录每
//一种字符的出现次数。这两个数组都应在调用程序中定义。k返回不同字符数。
int i, j, len = s.length( );
if ( !len )
{
ptintf("The string is empty. " );
k = 0;
return;
}
else
{
A[0] = s[0]; C[0] = 1; k = 1; /*语句s[ i ]是串的操作*/
for ( i = 1; i < len; i++ ) C[ i ] = 0; /*初始化*/
for ( i = 1; i < len; i++ )
{ /*检测串中所有字符*/
j = 0;
while ( j < k && A[j] != s[ i] ) j++; /*检查s[ i]是否已在A[ ]中*/
if ( j == k )
{
A[k] = s[ i]; C[k]++; k++
} /*s[ i]从未检测过*/
else C[ j]++; /*s[ i]已经检测过*/
}
}
}

#include<stdio.h>

struct Counter
{
int c;
int flag;
};
void main()
{
char a[50],b[50];
int i,j,sum;
struct Counter count[50]={0,0};
scanf("%s",a);
for(i=0;a[i]!=0;i++)
{
b[i]=a[i];
}
for(i=0;a[i]!=0;i++)
{
for(j=0;j<=i;j++)
{
if(a[i]==a[j]&&i!=j)
{
(count[j].c)++;
(count[j].flag)=1;
break;
}
else if(a[i]==a[j]&&i==j)
{
(count[i].c)=1;
(count[i].flag)=1;
}
}
}
sum=i;
printf("共有%d个字符\n",sum);
for(i=0;b[i]!=0;i++)
{
if(count[i].c!=0&&count[i].flag==1)
{
printf("%c有%d个\n",b[i],count[i].c);
}
}
}

#include <stdio.h>

main()
{
int c,i,nwhite,nother;
int ndigit[10];

nwhite=nother=0;
for (i=0;i <10;++i)
ndigit[i]=0;

while ((c=getchar())!=EOF)

if (c> = '0 '&&c <= '9 ')
++ndigit[c- '0 '];
else if (c== ' '||c== '\n '||c== '\t ')
++nwhite;
else
++nother;

printf( "digit= ");
for (i=0;i <10;++i)
printf( "%d ",ndigit[i]);
printf( ".white space=%d,other=%d\n ",nwhite,nother);

}


简单的C语言编程问题。 题一:从键盘输入字符串“How are you”,并将其...
include <stdio.h>int main(){char s[200]; gets(s); puts(s);return 0;}#include <stdio.h>int main(){int i,n; printf("要输入几个字符串:"); scanf("%d%*c",&n); char s[n][80]; for(i=0;i<n;i++) gets(s[i]); printf("输入的字符串是:\\n"); for(i=0...

c语言编程 :怎样从我建立的题库文件中随机抽出题目?并且在屏幕显示出这...
使用int rand()函数生成随机数,然后根据随机数去读取题号

C语言编程:从键盘输入2个字符,分别显示字符对应的ASCII码十进制值...
include<stdio.h> include <windows.h> include <stdlib.h> int main(void){ char a, b;scanf("%c %c", &a, &b);printf("%d\\t %d\\n", a, b);printf("0x%x\\t 0x%x\\n", a, b);printf("0x%p\\t 0x%p\\n", &a, &b);system("pause");return 0;} ...

用C语言编程。问题:编一个程序,当用户输入房间的长与宽后,程序自动求出...
include <stdio.h> main() { double length, width, s; printf("enter length and width:\\n"); scanf("%lf %lf",&length ,&width); s = length*width; printf("s = %lf\\n",s); }

用C语言编程 在屏幕上显示围棋棋盘
-- 以怎么不用 MS VC++6 ??编C语言一般都用啊 还有\\xCD是C语言 Ascii代码 表示一个图形 用循环语句啊!等我一下 晚上写出来 贴上哦 晚上10:00 上完课回来 呵呵 分给不给 随便 你的问题让我熟练了许多 分不重要了 我终于写出来了 调试了30分钟啊!纯粹的循环 + 判断 -- 我就...

c语言编程,DEV C++在编译后还显示未编译,如图。
Dev-C++ 使用MingW64\/TDM-GCC编译器,遵循C++ 11标准,同时兼容C++98标准。开发环境包括多页面窗口、工程编辑器以及调试器等,在工程编辑器中集合了编辑器、编译器、连接程序和执行程序,提供高亮度语法显示的,以减少编辑错误,还有完善的调试功能,适合于在教学中供 C\/C++语言初学者使用,也适合于非...

如何用C语言编程将红外传感器的返回值在数码管上用0和1显示?
include<reg52.h> sbit wei1=P3^0;sbit wei2=P3^1;unsigned char code DuanMa[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};\/\/ 显示段码值0~9 unsigned char Data[8]; \/\/存储显示值的全局变量 void Delay(unsigned int t); \/\/函数声明 main(){ unsigned char ...

C语言编程题,编写显示单月的日历,用户指定这个月的天数和该月起始日...
include <stdio.h> int main(){ int day=0;\/\/天数 int count=0;\/\/起始日是星期几 int printdays=0;\/\/打印天数 int i;printf("请输入天数和起始日是星期几:\\n");scanf("%d%d",&day,&count);printdays=day+count-1;\/\/printf("星期日\\t星期一\\t星期二\\t星期三\\t星期四\\t星期五\\t...

51单片机C语言编程矩阵式键盘LCD显示设计,程序没错,但在显示器上按键...
……main(){ uchar m;P0 = 0xFF;P1 = 0xFF;delay(10);lcd_init();lcd_pos(0);m = 0;while(cdis1[m]!='\\0' ) { lcd_wdat(cdis1[m]);m++;} \/\/执行上面这些,液晶屏,显示什么没有?while(1);}

用C语言编程:输入x,y,z三个数,实现从小到大次序显示
unsigned int num[MAX],max,min,c,t;srand(time(0));for(t=0;t<MAX;++t) num[t]=rand()%71+30;max=min=num[0];c=0;for(t=0;t<MAX;++t){ if(max<num[t]) max=num[t];else if(min>num[t]) min=num[t];c+=num[t];printf("%5d",num[t]);} printf("\\nmax=%d,...

七台河市17154953453: 用C语言编程:在显示器上输入一段字符串,并统计出现字符的个数和各个字符出现的次数 -
愚力银杏: #include <stdio.h> void main() { char c; int i,letters=0,num[26]={0}; //字符的个数, 26个字符个数初始化为0 printf("请输入一段字符串:\n"); while((c=getchar())!='\n') {if(c>='a'&&c<='z'||c>='A'&&c<='Z'){letters++;if(c>='a'&&c<='z') num[c-'a']...

七台河市17154953453: 编写一个C语言程序:用来实现在屏幕上显示一句话:Hello World!. -
愚力银杏: #include<stdio.h> void main(void) { int i; printf("Hello World!"); scanf("%d",&i);//这句是为了让画面停留 }

七台河市17154953453: 用c语言编写程序 在屏幕上输出******,新人表示不会 求帮助 -
愚力银杏: 如果是 * ** *** 的话,是这样考虑的: #一共3行,用循环实现:for ( i=0;i<3;i++ ) { /*循环体中i分别等于0,1,2*/ } #每行需要换行: for ( i=0;i<3;i++ ) { //这里输出每行的星号而printf("*");能打印一个*printf("\n"); } #每行星号个数由循环变...

七台河市17154953453: C语言编程实现在一个文件末尾写入一段话并将文本文件全部显示在显示屏上 -
愚力银杏: 你的文件指针位置不对,你放完字符串后,文件指针指向你放完字符串的地方,输出自然是从指针开始的 解决方法:fputs与循环之间加一个 fseek(fp, 0l, SEEK_SET);//将文件指针指向文件头就可以了

七台河市17154953453: 怎样用c语言编写代码,用于读取文本内容在屏幕上输出 -
愚力银杏: 假设文本文件data.txt的内容是 abcde12345#include<stdio.h> void main() { FILE *fp; char buffer[256]; if ( fp=fopen("data.txt","r") ) { while ( !feof(fp) ) { fgets(buffer,255,fp); printf("%s\n",buffer); } fclose(fp); } else printf("无法打开文本文件读取.\n"); }

七台河市17154953453: C语言编写函数,从屏幕输入一行字符将所有的大写字母转换为小写字母,所有的小写字母转换为大写字母 -
愚力银杏: #include #include int main() { int i, len; char str[100]; gets(str); len=strlen(str); for (i = 0; iif (isalpha(str[i])) { str[i] ^= 32; } puts(str); return 0; } 其中用到了一个函数isalpha(),作用是判断参数是否为英文字母.当参数为英文字母a-z或A-Z时,返回...

七台河市17154953453: C语言程序!上边说的在屏幕上输入一下信息在哪输入啊 -
愚力银杏: printf就是输出啊,后面有个\n那就是转义符,功能就是在输出后换行

七台河市17154953453: C程序中,编程在屏幕上输出下列信息.用户根据上面菜单提示进行选择,输入0~4之间的数字,输入不同则显示 -
愚力银杏: 整个主菜单可以采用do while语句 功能选项用switch--case语句就可以实现了 例如 int n; do{ 界面的实现 printf("请选择功能:"); scanf("%d",&n); switch(n) { case 0: break; case 1: 功能实现;break; …… case 8 功能实现;break; } }while(n!=0)

七台河市17154953453: 把文本文件中的程序加上行号后在显示器上输出用C语言怎么实现? -
愚力银杏: 1.用fgets按行读取文本2.设一个变量i,初始为1,每次输出一行时,用itoa或者sscanf将i的值转成对应的字符串,然后用strcat连接上对应行的文本,输出后,i++

七台河市17154953453: 编写c语言程序,对于从键盘上输入的一行字符,该程序能将其依次显示在屏幕上. -
愚力银杏: 1 2 3 4 5 6 7 8#include <stdio.h> #include <string.h> intmain(){chars[100];gets(s);printf("%s",s);return0; }

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网