C语言编写:输入任意一串字符串,统计该字符串中出现的字符a的个数,并输出共统计的个数。 c语言作业:输入任意字符串,统计字母a的个数
C\u8bed\u8a00\u7f16\u5199\uff1a\u8f93\u5165\u4efb\u610f\u4e00\u4e32\u5b57\u7b26\u4e32\uff0c\u7edf\u8ba1\u8be5\u5b57\u7b26\u4e32\u4e2d\u51fa\u73b0\u7684\u5b57\u7b26a\u7684\u4e2a\u6570\uff0c\u5e76\u8f93\u51fa\u5171\u7edf\u8ba1\u7684\u4e2a\u6570\u3002\u4ee3\u7801\u5982\u4e0b\uff1a
/*\u7f16\u7a0b\u4ece\u952e\u76d8\u8f93\u5165\u4e00\u4e2a\u5b57\u7b26\u4e32\uff0c\u7edf\u8ba1\u8be5\u5b57\u7b26\u4e32\u4e2d\u4ece'a'\u5230'z'\u517126\u4e2a\u5c0f\u5199\u5b57\u6bcd\u5404\u81ea\u51fa\u73b0\u7684\u6b21\u6570\uff0c
\u5c06\u7ed3\u679c\u5b58\u5165\u6570\u7ec4\u4e2d\uff0c\u5e76\u8f93\u51fa*/
#include
#include
#define N 100
main()
{int i,j=0,c[26]={0};
char str[N];
printf("\u8bf7\u8f93\u5165\u4e00\u4e2a\u5b57\u7b26\u4e32\uff1a");
gets(str);
for(i=0;i<strlen(str);i++)/*\u5916\u5faa\u73af\u626b\u63cf/\u904d\u5386\u5b57\u7b26\u6570\u7ec4*/
for(j=0;j<26;j++)
if(str[i]=='a'+j)
{c[j]++;
break;
}
for(i=0;i<26;i++)
printf("%c-%d\t",'a'+i,c[i]);/*\u8f93\u51fa\u5b57\u6bcda-z\u53ca\u5176\u51fa\u73b0\u7684\u6b21\u6570*/
}
\u6269\u5c55\u8d44\u6599
\u5b57\u7b26\u4e32\u5e38\u91cf\u4e0e\u5b57\u7b26\u6570\u7ec4\u7684\u533a\u522b
1\uff09\u5b57\u7b26\u4e32\u5e38\u91cf\u662f\u4e00\u4e2a\u5b57\u7b26\u6570\u7ec4\uff0c\u4f46\u662f\u5185\u5bb9\u548c\u957f\u5ea6\u5728\u521d\u59cb\u5316\u65f6\u5c31\u5df2\u7ecf\u56fa\u5b9a\u4e86\uff0c\u4e0d\u53ef\u66f4\u6539\uff1b\u53ef\u4ee5\u901a\u8fc7\u4e00\u4e2a\u6307\u5411\u5b57\u7b26\u4e32\u5e38\u91cf\u7b2c\u4e00\u4e2a\u5143\u7d20\u7684\u6307\u9488\u6765\u8bbf\u95ee\u8be5\u5b57\u7b26\u4e32\u5e38\u91cf\uff1b
2\uff09\u5b57\u7b26\u6570\u7ec4\u662f\u4e00\u4e2a\u7528\u4e8e\u5b58\u653e\u5b57\u7b26\u7684\u6570\u7ec4\uff0c\u5b57\u7b26\u6570\u7ec4\u7684\u503c\u662f\u53ef\u4ee5\u66f4\u6539\u7684\u3002
\u5e38\u7528\u5b57\u7b26\u4e32\u51fd\u6570\uff1a
1\u3001\u590d\u5236\u5b57\u7b26\u4e32
C \u8bed\u8a00\u4e2d\u4f7f\u7528\u5e93\u51fd\u6570 strcpy \u6765\u8fdb\u884c\u5b57\u7b26\u4e32\u590d\u5236\u64cd\u4f5c\uff1a
char *strcpy(char *dst , char const *src);
\u51fd\u6570 strcpy \u63a5\u6536\u4e24\u4e2a\u5b57\u7b26\u4e32\u53c2\u6570\uff0c\u5e76\u5c06\u53c2\u6570 src \u5b57\u7b26\u4e32\u590d\u5236\u5230 dst \u53c2\u6570\u3002\u4f7f\u7528 strcpy \u51fd\u6570\u65f6\u9700\u8981\u6ce8\u610f\u7684\u662f\uff0c\u5fc5\u987b\u4fdd\u8bc1\u76ee\u6807\u5b57\u7b26\u6570\u7ec4 dst \u7684\u957f\u5ea6\u8db3\u591f\u5b58\u653e\u6e90\u5b57\u7b26\u6570\u7ec4 src \u7684\u5185\u5bb9\u3002
\u5982\u679c src \u6bd4 dst \u957f\uff0c\u5219 src \u5269\u4f59\u90e8\u5206\u7684\u5b57\u7b26\u4ecd\u4f1a\u88ab\u590d\u5236\uff0c\u800c\u4e14\u5b83\u4eec\u4f1a\u8986\u76d6 dst \u540e\u9762\u7684\u5185\u5b58\u7a7a\u95f4\u7684\u503c\uff0c\u5982\u679c\u8fd9\u9664\u5185\u5b58\u7a7a\u95f4\u539f\u672c\u5c31\u5b58\u653e\u6709\u503c\uff0c\u5219\u4f1a\u5bfc\u81f4\u539f\u672c\u7684\u6570\u636e\u4e22\u5931\uff0c\u8fd9\u6837\u4f1a\u9020\u6210\u5f88\u4e25\u91cd\u7684\u540e\u679c\u3002\u4e3a\u4e86\u89e3\u51b3\u8fd9\u4e2a\u95ee\u9898\uff0c C \u8bed\u8a00\u4e2d\u63d0\u4f9b\u4e86\u4e00\u79cd\u66f4\u4e3a\u5b89\u5168\u7684\u65b9\u5f0f\u6765\u8fdb\u884c\u5b57\u7b26\u4e32\u590d\u5236\u64cd\u4f5c\u2014\u2014strncpy \u51fd\u6570\uff1a
char *strncpy(char *dst , char const *src , size_t len);
2\u3001\u8fde\u63a5\u5b57\u7b26\u4e32
C \u8bed\u8a00\u4e2d\u4f7f\u7528\u5e93\u51fd\u6570 strcat \u6765\u8fde\u63a5\u4e24\u4e2a\u5b57\u7b26\u4e32\uff1a
char *strcat(char *dst,char const *src);
\u51fd\u6570 strcat \u5c06\u53c2\u6570 src \u5b57\u7b26\u4e32\u8fde\u63a5\u5230\u53c2\u6570 dst \u5b57\u7b26\u4e32\u7684\u540e\u9762\u3002\u4e0e strcpy \u51fd\u6570\u4e00\u4e2a\u540c\u6837\u7684\u95ee\u9898\u662f\uff0c\u5fc5\u987b\u4fdd\u8bc1 dst \u7684\u5269\u4f59\u7a7a\u95f4\u8db3\u591f\u5b58\u653e\u4e0b src \u6574\u4e2a\u5b57\u7b26\u4e32\u3002C \u8bed\u8a00\u4e2d\u63d0\u4f9b\u4e86 strncat \u51fd\u6570\u6765\u89e3\u51b3\u8fd9\u4e2a\u95ee\u9898\uff1a
char *strncat(char *dst , char const *src , size_t len);
strncat \u51fd\u6570\u4ece src \u4e2d\u6700\u591a\u590d\u5236 len \u4e2a\u5b57\u7b26\u5230\u76ee\u6807\u6570\u7ec4 dst \u540e\u9762\uff0c\u5e76\u4e14\uff0cstrncat \u603b\u662f\u5728\u7ed3\u679c\u5b57\u7b26\u4e32\u540e\u9762\u6dfb\u52a0\u4e00\u4e2a NUL \u5b57\u8282\uff0c\u800c\u4e14\u4e0d\u4f1a\u50cf strncpy \u51fd\u6570\u90a3\u6837\u5bf9 dst \u5269\u4f59\u7684\u7a7a\u95f4\u7528 NUL \u8fdb\u884c\u586b\u5145\u3002
\u5faa\u73af\u904d\u5386\u4e00\u904d\uff0c\u662fa\u5c31\u7d2f\u52a0\u4e00\u4e0b\u5c31\u597d\u4e86\u3002
#include #define MAX 100int main(){ int iSum = 0;//\u7edf\u8ba1\u8ba1\u6570 int i; char sStr[MAX]; gets(sStr); for(i=0;;i++) { if(sStr[i]!=0)//\u5224\u65ad\u4e0d\u4e3a\u7ed3\u5c3e\u7b26 { if(sStr[i]=='a')//\u5224\u65ad\u4e3aa\u5b57\u7b26 { iSum+=1; } } else { break; } } printf("Numbers of char 'a' is %d",iSum); return 0;}
代码如下:
/*编程从键盘输入一个字符串,统计该字符串中从'a'到'z'共26个小写字母各自出现的次数,
将结果存入数组中,并输出*/
#include<stdio.h>
#include<string.h>
#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 进行填充。
绛旓細鍦ㄤ笂杩颁唬鐮佷腑锛屾垜浠鍏堝畾涔変簡涓涓悕涓 `count_a_in_string` 鐨勫嚱鏁帮紝瀹冩帴鏀涓涓瓧绗︿覆浣滀负鍙傛暟銆傜劧鍚庯紝閫氳繃閬嶅巻瀛楃涓蹭腑鐨勬瘡涓瓧绗︼紝褰撻亣鍒 'a' 鏃讹紝璁℃暟鍣 `count` 鑷銆傛渶鍚庯紝鍑芥暟杈撳嚭缁熻鍒扮殑 'a' 鍑虹幇娆℃暟銆傚湪 `main` 鍑芥暟涓紝鎴戜滑浠庣敤鎴烽偅閲岃幏鍙杈撳叆锛屼娇鐢 `fgets` 浠f浛 `gets` 鏉ラ槻...
绛旓細瑕佺粺璁¤緭鍏ュ瓧绗︿覆涓瓧绗'a'鐨勪釜鏁帮紝C璇█鎻愪緵浜嗙畝鍗曠殑鏂规硶銆傞鍏堬紝鎴戜滑瀹氫箟涓涓▼搴忥紝鍏舵牳蹇冮儴鍒嗘槸閫氳繃涓や釜宓屽鐨刦or寰幆鏉ラ亶鍘嗗瓧绗︿覆骞剁粺璁'a'鍒'z'杩26涓皬鍐欏瓧姣嶇殑鍑虹幇娆℃暟銆備互涓嬫槸浠g爜鐗囨锛歩nclude#includeintmain(){inti,j=0,c[26]={0};charstr[N];printf("璇杈撳叆涓涓瓧绗︿覆锛");gets...
绛旓細1)瀛楃涓甯搁噺鏄涓涓瓧绗鏁扮粍,浣嗘槸鍐呭鍜岄暱搴﹀湪鍒濆鍖栨椂灏卞凡缁忓浐瀹氫簡,涓嶅彲鏇存敼;鍙互閫氳繃涓涓寚鍚戝瓧绗︿覆甯搁噺绗竴涓厓绱犵殑鎸囬拡鏉ヨ闂瀛楃涓插父閲; 2)瀛楃鏁扮粍鏄竴涓敤浜庡瓨鏀惧瓧绗︾殑鏁扮粍,瀛楃鏁扮粍鐨勫兼槸鍙互鏇存敼鐨勩 甯哥敤瀛楃涓插嚱鏁: 1銆佸鍒跺瓧绗︿覆 C 璇█涓娇鐢ㄥ簱鍑芥暟 strcpy 鏉ヨ繘琛屽瓧绗︿覆澶嶅埗鎿嶄綔: char *strcpy(...
绛旓細NULL,100);//鍒濆鍖栨墍鏈夊厓绱犱负绌 puts("璇杈撳叆涓涓插瓧绗︼細\n"); gets(ch); puts("璇杈撳叆涓涓瓧绗︼細"); scanf("%c",&c); puts("璇疯緭鍏ヨ鎻掑叆鐨勪綅缃細"); scanf
绛旓細int main(){ char ch[100]={0};scanf("%s", ch);count(ch);return 0;} void count(char* ch){ //鍒嗗埆璁板綍澶у啓锛屽皬鍐欙紝鏁板瓧鐨勪釜鏁般俰nt big=0, small=0, character=0,qita = 0;while (*ch){ if ((*ch>='A')&&(*ch<='Z')){ ++big;} else if ((*ch>='a')&&(*ch<...
绛旓細瑕缂栧啓涓涓狢璇█绋嬪簭锛岀粺璁杈撳叆瀛楃涓涓殑澶у啓瀛楁瘝銆佸皬鍐欏瓧姣嶃佹暟瀛楀瓧绗﹀拰鍏朵粬瀛楃鐨勪釜鏁帮紝鍙互鎸夌収浠ヤ笅姝ラ杩涜銆傞鍏堬紝鎴戜滑闇瑕佸畾涔涓涓瓧绗鏁扮粍鏉ュ瓨鍌ㄨ緭鍏ョ殑瀛楃涓诧紝骞惰缃洓涓鏁板櫒鍒嗗埆鐢ㄤ簬璁板綍鍚勭被瀛楃鐨勬暟閲忋俢 include void main() { char a[100];int sum0 = 0, suma = 0, sumA = 0; /...
绛旓細include<stdio.h>int count = 0; void reverse() { char ch = getchar(); if (ch == '\n') { return; } else { reverse(); if (ch>= '0'&&ch<= '9') { ++count; } if (ch>= 'a'&&ch<= 'z') { ch = ch - 'a' + 'A'; } putchar(ch); } } int main()...
绛旓細include<stdio.h>#include<string.h>void main(){char a[100],b[100];int j=0,n,len,flag,s=0;printf("璇杈撳叆涓涓瓧绗︿覆锛\n");scanf("%s",a);printf("鍒犻櫎鍓嶇殑瀛楃涓诧細\n");printf("%s\n",a);n=strlen(a); // 鑾峰彇杈撳叆瀛楃涓茬殑闀垮害b[0] = a[0]; // 灏 a 瀛楃涓茬殑...
绛旓細鍦C璇█涓紝缂栧啓涓涓绋嬪簭鍙互缁熻骞惰緭鍑虹粰瀹瀛楃涓涓殑澶у啓瀛楁瘝銆佸皬鍐欏瓧姣嶃佹暟瀛楀瓧绗﹀拰鍏朵粬瀛楃鐨勬暟閲忋傜▼搴忎娇鐢ㄦ寚閽堥亶鍘嗗瓧绗︿覆锛岄氳繃鏉′欢鍒ゆ柇鏉ュ尯鍒嗗悇绫诲瓧绗︺備互涓嬫槸璇ョ▼搴忕殑绀轰緥浠g爜锛歩nclude<stdio.h>voidmain(){chara[100];intsum0=0,suma=0,sumA=0;gets(a);char*p;for(p=a;*p!='\0';p++)...
绛旓細printf("璇疯緭鍏ュ瓧姣:");for(i=0;i<10;i++) //i<10涓嶆槸0<10 scanf("%c",&str[i]); //瑕佺敤%c杈撳叆瀛楃 str[10]=0; //鏈鍚庡姞涓粨鏉熺锛屼互渚胯緭鍑瀛楃涓 for(i=0;i<10;i++){ if(str[i]<'a'||str[i]>'z') //濡傛灉涓嶆槸瀛楁瘝锛屽氨璺冲嚭 break;} if(i>=10) ...