c语言 统计字符个数?

Python010

c语言 统计字符个数?,第1张

要统计英文字母,空格,数字和其他字符的个数,代码如下:

#include<stdio.h>

#include<stdlib.h>

int main()

{

char c

int letters=0

int space=0

int digit=0

int other=0

printf("请输入一行字符:>")

while((c=getchar())!='\n')

{

if((c>='a'&&c<='z')||(c>='A'&&c<='Z'))

{

letters++

}

else if(''==c)

{

space++

}

else if(c>='0'&&c<='9')

{

digit++

}

else

{

other++

}

}

printf("字母的个数:>%d\n空格的个数:>%d\

\n数字的个数:>%d\n其他字符的个数:>%d\n",\

letters,space,digit,other)

system("pause")

return 0

}

我们进行程序编写的时候,经常会遇到统计字符串中各个字符个数的需求。那么如何实现这种功能呢?下面我给大家分享一下。

工具/材料

Visual Studio 2015

01

首先打开Visual Studio软件,新建一个Win32应用程序,并且在项目下新建C语言文件,如下图所示

02

然后我们在C语言文件中导入程序要用到的库文件,如下图所示

03

接下来我们就开始实现字符统计的功能,主要是挨个读取字符串中的字符,然后判断字符的类别,如下图所示

04

最后我们运行程序,输入一个字符以后,你就会发现程序已经自动统计好了各种字符的个数了,如下图所示

代码如下:

/*编程从键盘输入一个字符串,统计该字符串中从'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=0i<strlen(str)i++)/*外循环扫描/遍历字符数组*/

for(j=0j<26j++)

if(str[i]=='a'+j)

{c[j]++

break

}

for(i=0i<26i++)

printf("%c-%d\t",'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 进行填充。