C语言程序如下:
#include<stdio.h>
int main()
{
char a[100]
char b[24]
int s[100] = { 0 }//用于存储字符的个数
gets(a)//输入字符
//开始比较
for (int x = 0x <24x++)
{
int c = 0//记录每个字符个数
b[x] = x + 97//为了让b[0]是a,b[1]是b依次类推
for (int i = 0i <100i++)
{
if (b[x] == a[i])
{
++c
s[x] = c
}
}
if (s[x]>=1)//只输出输入中有的字母 的个数
{
printf("%c %d\n", b[x], s[x])
}
}
getchar()
return 0
}
扩展资料:
程序思路:
分为三部分 首先输入字符串 ,其次设定一个字符数组英文小写字母24, 同时设一个int数组 记录个数, 以及一个int c 为了给int数组赋值。最后在输入的时候进行判断,如果字母的值 大于等于1才输出。
看我旁边做的注解
cnt(s,array)/*调用子函数cnt,并传给参数s,
array。s是字符数组,相当于字符串指针;array是数组好理解*/
for(i=0i<26i++)
printf("%d",array[i])
/*
for循环
依次输出26个字母出现的次数。这里%d后面加个空格或逗号分隔才好
*/
printf("\n")
子函数
void
cnt(char
*p,int
arr[])
/*
第一个参数是字符串指针,第二个参数是整型数组
*/
{
int
i
for(i=0i<26i++) /*数组初始化*/
arr[i]=0
/*
26个字母的个数全初始设置为0
*/
while(*p)
/*
循环,*p表示取指针p所指的字符,如果为0则表示字符串结束,退出循环
*/
{
if(*p>='a'&&*p<='z') /*数组元素判断*/
/*
判断是否是a到z的字母,若是才统计*/
arr[*p-'a']++/*p与字母a的差值刚好就是数组arr下标*/
/*
字母a对应数组的下标是0,
b是1,依次类推
*/
p++
/*
指针加1,
指向后面一个字符
*/
}
}
#include<iostream>
#include<string>
using namespace std
int main()
{
char str[50]
int n=0
char *p
p=str
cout<<"请输入字符串:"<<endl
cin>>str
for(int i=0*p!='\0'p++)
{
if(('a'<=*p &&*p<='z') || ('A'<=*p &&*p<='Z'))
{
n++
cout<<*p<<" "
}
else
break
}
cout<<"字符串的数量为:"<<n<<endl
return 0
}
扩展资料:
printf用法:
printf()函数的调用格式为:printf("&lt;格式化字符串&gt;",&lt;参量表&gt;)。
其中格式化字符串包括两部分内容:一部分是正常字符,这些字符将按原样输出;另一部分是格式化规定字符,以"%"开始,后跟一个或几个规定字符,用来确定输出内容格式。
参量表是需要输出的一系列参数,其个数必须与格式化字符串所说明的输出参数个数一样多,各参数之间用","分开,且顺序一一对应,否则将会出现意想不到的错误。
比如:
inta=1234;
printf("a=%d\n",a);
输出结果为a=1234。