c语言,从键盘输入一串字符串,统计字符串中特定字符的个数,并输出个数

作者&投稿:柯涛 (若有异议请与网页底部的电邮联系)
C语言编写:输入任意一串字符串,统计该字符串中出现的字符a的个数,并输出共统计的个数。~

代码如下:
/*编程从键盘输入一个字符串,统计该字符串中从'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 进行填充。

思路:从键盘分别输入字符串和要统计的字符,然后对此字符串从头开始逐个与所统计的字符比较。
如相同,则让计数器加1,知道字符串整体比较结束为止,计数器中就是需统计的字符的个数,具体代码设计如下:


函数应用
1、连接运算 concat(s1,s2,s3…sn) 相当于s1+s2+s3+…+sn.
例:concat(‘11’,'aa’)='11aa’;
2、求子串。 Copy(s,I,I) 从字符串s中截取第I个字符开始后的长度为l的子串。
例:copy(‘abdag’,2,3)=’bda’
3、删除子串。过程 Delete(s,I,l) 从字符串s中删除第I个字符开始后的长度为l的子串。
例:s:=’abcde’;delete(s,2,3);结果s:=’ae’
4、插入子串。 过程Insert(s1,s2,I) 把s1插入到s2的第I个位置
例:s:=abc;insert(‘12’,s,2);结果s:=’a12bc’

程序设计思路如下:

从键盘分别输入字符串和要统计的字符,然后对此字符串从头开始逐个与所统计的字符比较,如相同,则让计数器加1,知道字符串整体比较结束为止,计数器中就是需统计的字符的个数。

#include "stdio.h"

main()
{ char str[100],ch;  /*定义str字符串,定义ch用来存放要统计的字符*/
  int cnt=0,i;       /*定义cnt用作计数器,初始值为0*/
  
  /*输入字符串*/
  printf("请输入字符串:");    
  gets(str);
  
  /*输入要统计的字符*/
  printf("请输入要统计的字符:");
  scanf("%c",&ch);
  
  /*对此字符串从头开始逐个与所统计的字符比较,如相同,则让计数器加1,知道字符串整体比较结束为止*/
  for( i=0;str[i];i++ )
     if( str[i]==ch )
         cnt++;
  
  /*输出结果*/       
  printf("%s串中%c字符的个数是:%d个",str,ch,cnt);
}


主要代码:

char s[1000];
int i,j=0; 
scanf("%s",s); 
for(i=0;i<1000;i++)
{
if(s[i]=='*') //for循环查找字符*的数量
j++;//利用变量j计数
}


主要代码:
char s[1000];
int i,j=0;
scanf("%s",s);
for(i=0;i<1000;i++)
{
if(s[i]=='*') //for循环查找字符*的数量
j++;//利用变量j计数
}

主要代码:
char s[1000];
int i,j=0;
scanf("%s",s);
for(i=0;i<1000;i++)
{
if(s[i]=='*') //for循环查找字符*的数量
j++;//利用变量j计数
}

#include <stdio.h>
#include <string.h>
#define MAX 100
int main()
{
char num[MAX]={0};
char c=0;
int len,cnt=0;
scanf("%s %c",num,&c);
len=strlen(num);
while(len--)
{
if(c==num[len]) cnt++;
}
printf("%d
",cnt);
    return 0;
}



C语言,从键盘输入一字符串,将其中的小写字母全转换成大写字母后输出。小...
include<stdio.h>char toupper(char c){ if(c>='a'&&c<='z')c-=32; return c;}int main(){ char s[200]; int i; gets(s); for(i=0; s[i]; i++) s[i]=toupper(s[i]); printf("%s\\n",s); return 0;} ...

求助C语言,从键盘输入一指定金额(以元为单位,如345.78),然后显示支...
printf("100元、50元、10元、5元、2元、1元、5角、1角、5分、1分各有%d,%d,%d,%d,%d,%d,%d,%d,%d,%d张",a,b,c,d,e,f,g,h,i,j);return 0;}

汇编语言,从键盘输入一字符串
code segment assume cs:code,ds:code org 100h start:push cs pop ds Q0:lea dx,Buffer mov ah,9 ;显示提示 int 21h mov si,200h ;硬编码缓冲区首址 mov byte ptr [si],0ffh ;置输入缓冲区大小为255个字符 mov dx,si ;定义缓冲区首址 mov ah,0ah int 21h mov ax,0e0dh ;回车 ...

4. (C语言)从键盘上输入一字符串,并判断是否形成回文(即正序和逆序一样...
= s[j]){return 0;}}return 1;}int main(){char s[100];gets(s);if(f(s, strlen(s))){printf("回文\\n");}else{printf("非回文\\n");}return 0;}

C语言:从键盘输入一字符串(个数不大于30),剔除其中的数字字符后输出结果...
2 int main(int argc, char **argv)3 { 4 char myStr[30] = {0};5 size_t i, pos = 0;6 printf("Input string:");7 scanf("%s", myStr);9 for(i = 0; i < 30; ++i)10 { 11 if(*(myStr + i) == '\\0')12 break;13 if(*(myStr ...

C语言从键盘输入一16进制无符号整数将该数的第二个字节(从低字节到高...
include<stdio.h> void main() { unsigned int x,y; unsigned char *p;scanf("%x",&x); y=x; p=(unsigned char *)&y; p++; *p=0; printf("%x\\n",y);}

如何用C语言,从键盘输入一个字符串,将其按逆序存入另一个字符数组中并...
以一个8为字符串为例:代码如下 include<stdio.h> int main(){ int i,j;char ch1[8],ch2[8];for(i=0;i<8;i++){ printf("请输入第%d个字符",i);scanf("%c",&ch1[i]);fflush(stdin);} for(j=0;j<8;j++){ ch2[j]=ch1[7-j];printf("%c",ch2[j]);} } ...

用C语言表示从键盘输入一系列正数,并求和,直至输入的数等于0为止?_百度...
include <stdio.h> int main(){ long long int sum = 0; \/\/ 用于存储总和 long long int num; \/\/ 用于存储输入的数 printf("请输入一个数(输入0结束):");scanf("%lld", &num);while (num != 0) { sum += num; \/\/ 将输入的数累加到总和中 printf("请输入下一个数(输入0...

C语言,从键盘输入一个大写字母,要求改用小写字母输出
代码如下:include<stdio.h>int main(){char a; printf("请输入一个大写英语字母:");scanf("%c",&a);printf("转换成小写字母为%c",a+32);} 运行结果如下:

C语言编程,从键盘输入一字符串,将其中的小写字母全部转换成大写字母_百 ...
int main() { FILE *fp;if((fp=fopen("123.txt","a"))==NULL)printf("file cannot open \\n");else printf("file opened for writing \\n");char ch;while((ch = getchar()) != '\\n'){ fputc(toupper(ch),fp);} fputc('#',fp);if(fclose(fp)!=0)printf("file cannot be...

泗水县19297273969: C语言(简单的)编写程序输入任意一串字符统计其中大写字母,小写字母.数字及其他字符的个数 -
哈胁依普: #include <stdio.h> void count(char*); int main() { char ch[100]={0}; scanf("%s", ch); count(ch); return 0; } void count(char* ch) { //分别记录大写,小写,数字的个数. int big=0, small=0, character=0,qita = 0; while (*ch) { if ((*ch>='A')&&(*ch<='Z')) { +...

泗水县19297273969: C语言编写程序从键盘上输入一个字符串,试统计出该字符串中所有数字字符的个数. -
哈胁依普: gets()函数输入,strlen()统计个数.

泗水县19297273969: c语言,从键盘输入一字符串编程统计给定字符串出现次数,每次位置? -
哈胁依普: #include <stdio.h>int main(void) {char szBuf[1024] = {0};char ch;int i; printf("Input buffer:");scanf(" %s", szBuf);printf("Input a char:");scanf(" %c", &ch); for (i = 0; szBuf[i] != 0; ++i){if ( szBuf[i] == ch ){printf(" %c %d\n", ch, i);}}return 0; }

泗水县19297273969: 输入字符串并统计其中组成的整数个数,C语言 -
哈胁依普: 思路:统计字符串中的空格,所以该字符串中有空格,则输入只能使用gets函数,再依次遍历该字符串,判断字符是否是空格,如果是,则空格个数自加1. 参考代码:#include<string.h>#include<stdio.h>#include<math.h>int main(){ int sum=0,i; char a[100]; gets(a); for(i=0;a[i]!='\0';i++) if(a[i]==' ') sum++; printf("%d\n",sum); return 0;}/*输出: af adf asfd4*/

泗水县19297273969: 如何用C语言编写一个程序,统计输入字符串 -
哈胁依普: 是统计输入的字符串长度吗?C语言不支持string类型,不过可以用字符串数值表示例如 char str[128]; 统计长度可以直接用while遍历到str[]=='\0'为止即为长度,或者使用strlen()函数也可以实现.如果是C++的string类型就方便多了,直接读取str.length就行了.

泗水县19297273969: C语言编程 从键盘输入一个字符串,分别统计其中大写字母、小写字母及其其他字符的个数,并输出. -
哈胁依普: #include<stdio.h> #include<ctype.h> int main() {int i,a[5];char s[200];gets(s);for(i=0;s[i];i++)if(isupper(s[i]))a[0]++;else if(islower(s[i]))a[1]++;else if(s[i]==' ')a[2]++;else if(isdigit(s[i]))a[3]++;else a[4]++;printf("英文大写字母有%d个\n",a[0])...

泗水县19297273969: C语言编写:输入任意一串字符串,统计该字符串中出现的字符a的个数,并输出共统计的个数.
哈胁依普: 代码如下:/*编程从键盘输入一个字符串,统计该字符串中从'a'到'z'共26个小写字母各自出现的次数,将结果存入数组中,并输出*/#include<stdio.h>#include<string.h>#define N 100 main() { int i,j=0,c[26]={0}; char str[N]; printf("请输入一个字符...

泗水县19297273969: C语言,从键盘输入一个字符串,统计字符串的字数a出现的次数,并将a改为b后输出 -
哈胁依普: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23#include <stdio.h>intmain(intargc, charconst*argv[]) {charbuf[256] = {0};char*p = NULL;intnum = 0;scanf("%s",buf);p = buf; while(*p){if(*p == 'a'){*p = 'b';num ++;}p ++;}...

泗水县19297273969: C语言编程题 4.编程实现:由用户从键盘输入一串字符(以回车键结束),统计其中数字、大、小写字母、 -
哈胁依普: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20#include<stdio.h> #include<stdlib.h>intmain() {chara[128];gets(a);inti=0;intc1,c2,c3,c4;c1=c2=c3=c4=0;while(a[i++]){if(a[i]>='A'&& a[i]<='Z') c1++;elseif(a[i]>='a'&& a[i]<='z') c2++;elseif...

泗水县19297273969: 用c语言编写输入一字符串,统计字符串中各个字母出现的次数(区分大小写) -
哈胁依普: 1 2 3 4 5 6 7 8 9 10 11 12 13 14#include <stdio.h> intmain() {inta[128]={0};charch;do{scanf("%c",&ch);a[ch]++;}while(ch!='\n');for(ch='A';ch<='Z';ch++)if(a[ch])cout<<ch<<":"<<a[ch]<<endl;for(ch='a';ch<='z';ch++)if(a[ch])cout<<ch<<":"<<a[ch]<<endl;return0; }

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