C语言编程输入任意字符直到q截止,C语言编程:从键盘中输入一个英文字符串

本文介绍了一个C语言程序,该程序能够接收用户输入的字符并统计各字符出现的次数。通过使用动态内存分配,程序能处理任意长度的字符串,并最终输出每个字母及其对应的出现频率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#include

#include

int main()

{

int strSize = 100;

char *str = (char *)malloc(sizeof(char) * strSize);

int charNum = 0;

char input;

//逐个字符输入字符串,可以输入int可以表示的最大值个字符

printf("请输入任意个字符:\n");

while(true)

{

scanf("%c",&input);

if(input != '#')

{

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

{

if(charNum > strSize)

{

strSize += 100;

str = (char *)realloc(str,strSize);

}

str[charNum] = input;

charNum++;

}

}

else

{

break;

}

}

//输入结果分析

int i = 0,j = 0;

char *tempChar = (char *)malloc(sizeof(char) * charNum);

int *tempCharNum = (int *)malloc(sizeof(int) * charNum);

int charType = 0;

bool exist = false;

for(i = 0; i < charNum; i++)

{

exist = false;

tempChar[i] = '#';

tempCharNum[i] = 0;

for(j = 0; j < charNum; j++)

{

if(tempChar[j] == '#')

{

break;

}

if(tempChar[j] == str[i])

{

exist = true;

tempCharNum[j] += 1;

}

}

if(exist == false)

{

tempChar[charType] = str[i];

tempCharNum[charType] = 1;

charType++;

}

}

int t1;

char t2;

for(j = 0; j < charType - 1; j++)

{

for(i = 0; i < charType; i++)

if(tempCharNum[i] > tempCharNum[i+1])//如果a[i]大于a[i+1]

{

//交换a[i]和a[i+1]的值,即把较大的元素往后排

t1 = tempCharNum[i];

tempCharNum[i] = tempCharNum[i+1];

tempCharNum[i+1] = t1;

t2 = tempChar[i];

tempChar[i] = tempChar[i+1];

tempChar[i+1] = t2;

}

}

for(i = 0; i < charNum; i++)

{

if(tempChar[i] != '#')

{

printf("单词:%c,次数:%d\n",tempChar[i],tempCharNum[i]);

}

}

free(str);

free(tempChar);

free(tempCharNum);

return 0;

}

7c65d1a0816b20b9fdb16589e5a110e1.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值