python统计字母出现次数代码用while_计算某字母出现次数

这是一个关于使用C++编程语言实现统计字符串中特定字母(不区分大小写)出现次数的代码集合,包括多种不同的实现方式,如使用while循环、for循环、函数等。代码示例中涉及了字符转换、字符串遍历和计数统计等核心概念。
摘要由CSDN通过智能技术生成

100

推荐

import java.uti

查看全部

编辑于 2017-03-04 16:05:10

回复(41)

0

#include

#include

using namespace std;

int main(){

string arr;

char compare1;

getline(cin,arr);

cin >> compare1;

compare1 = compare1 | 0x20;

int i = arr.length() - 1;

int counts = 0;

for (; i >= 0; i--)

{

if(arr[i] == 0x20) continue;

char temp = arr[i] | 0x20;

if (temp == compare1) counts++;

}

cout <

return 0;

}

发表于 2021-01-05 17:03:50

回复(0)

0

#include 

#include 

#include 

void str_num(char* str,char ch){

char* temp = str;

unsigned int len = strlen(str) - 1;

unsigned int num = 0;

for(int i = 0;i 

if(*temp == ch)

num++;

else if((*temp) + 32 == ch)

num++;

else if((*temp) - 32 == ch)

num++;

temp++;

}

printf("%d\n",num);

}

int main(){

char str[500] = {0};

char ch;

fgets(str,sizeof(str),stdin);

scanf("%c",&ch);

str_num(str,ch);

return 0;

}

发表于 2020-12-31 22:39:29

回复(0)

0

#include 

#include 

int main(void)

{

int aiCharNum[255] = { 0 };

char ch;

int charNum = 0;

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

{

/*将此字符的个数加1*/

aiCharNum[ch] ++;

}

// 清空缓存

while ((ch = getchar()) == '\n');

if (ch >= '0' && ch <= '9')

{

charNum = aiCharNum[ch];

}

else if (ch >= 'A' && ch <= 'Z')

{

charNum = aiCharNum[ch] + aiCharNum[ch + ('a' - 'A')];

}

else if (ch >= 'a' && ch <= 'z')

{

charNum = aiCharNum[ch] + aiCharNum[ch - ('a' - 'A')];

}

printf("%d\n", charNum);

return 0;

}

发表于 2020-11-09 21:57:23

回复(0)

0

include

include

int Findchar(charstr, charch)

{

assert(str != NULL);

int count = 0;

while (str != '\0')

{

if (str >= 'A'&&str <= 'Z')

*str = *str + 32;

if (ch >= 'A'&&ch <= 'Z')

ch += 32;

if (str == ch)

{

count++;

}

str++;

}

return count;

}

int main()

{

char str[100] = { 0 };

gets(str);

char ch;

scanf("%c", &ch);

int count = Findchar(str, ch);

printf("%d\n", count);

return 0;

}

编辑于 2020-10-25 15:01:31

回复(0)

0

//主要对比了Python和C++代码,感觉虽然Python三件代码很简短但是占用内存以及运行时间却较大

//C++需要2ms Python 16ms 还是各有所长啊 妙啊

# include # include

using namespace std;

int main()

{

string str;

char s;

cin >> str >> s;

int count=0;

for(int i=0;i

if(s==str[i] || s==str[i]+32 || s==str[i]-32)

count++;

cout << count;

}

发表于 2020-09-15 10:15:05

回复(0)

0

#include 

#include 

#include 

#define LEN 10000

int NumOfCharacter(const char *str, char ch)

{

int i;

int len = strlen(str) - 1;

int count = 0;

for (i = 0; i 

if (tolower(str[i]) == tolower(ch)) {

count++;

}

}

printf("%d\n", count);

return 0;

}

int main(void)

{

char arr[LEN] = {0};

char ch = 0;

fgets(arr, LEN, stdin);

scanf("%c", &ch);

NumOfCharacter(arr, ch);

return 0;

}

将字符串字符和对比字符都转换为小写后直接比较。

发表于 2020-09-13 21:33:24

回复(0)

0

直接算两个字符差值即可,无需大小写转换 #include 

#include 

using namespace std;

int main()

{

string str;

char ch;

while (cin >> str >> ch)

{

int count = 0;

for(const auto& c : str) {

//统计不区分大小写

int dec = c - ch;

if(0 == dec || dec == 'a' - 'A' || dec == 'A' - 'a') {

++count;

}

}

cout <

}

return 0;

}

发表于 2020-09-01 22:16:39

回复(0)

0

#include 

#include 

using namespace std;

int main(){

string str1;

string str2;

getline(cin,str1);

getline(cin,str2);

int count = 0;

for(int i = 0 ; i 

if(abs(str1[i] - str2[0]) == 0 || abs(str1[i] - str2[0]) == 32){

count++;

}

}

cout <

return 0;

}

编辑于 2020-08-30 21:04:20

回复(0)

0

#include

#include

#include

using namespace std;

int main()

{

string strs;

char str;

int count = 0;

cin >> strs;

cin >> str;

transform(strs.begin(), strs.end(), strs.begin(), ::toupper);//transform()头文件为algorithm

str = toupper(str);

for (int i = 0; i 

{

if (strs[i] == str)

{

count++;

}

}

cout <

system("pause");

}

编辑于 2020-08-30 18:00:24

回复(0)

1

#include

#include

using namespace std;

int main()

{

string a;

getline(cin,a);

char b;

cin>>b;

int c=0;

for(int i=0;i

{

if(a[i]>='A'&&a[i]<='Z')

{

a[i]+=32;

}

}

for(int i=0;i

{

if(a[i]==b)

{

c++;

}

}

cout<

return 0;

}

发表于 2020-08-28 17:06:21

回复(0)

0

#include

#include

using namespace std;

int main(){

char ch;

int count=0;

vector ans;

while(ch=getchar()){

if(ch=='\n') break;

else ans.push_back(ch);

}

cin>>ch;

for(int i=0;i

if(ans[i]==ch || ans[i]-32==ch || ans[i]+32==ch) count++;

}

cout<

return 0;

}

发表于 2020-08-25 17:10:04

回复(0)

0

#include

#include

int main(void)

{

char *s;

int n;

scanf("%d", &n);

s=(char *)malloc(sizeof(char)*n);

gets(s);

char x;

scanf("%c", &x);

int i=0, count=0;

while(s[i])

{

if(s[i]==x || s[i]==(x+32) || s[i]==(x-32))

count++;

i++;

}

printf("%d\n", count);

free(s);

return 0;

}

发表于 2020-08-24 13:33:46

回复(0)

0

c语言代码

#include 

#include 

int main()

{

//定义存储字符的数组

int arr[256] = {0};

//读取第一行的字符,并统计各个字符的个数

char temp;

temp = getchar();

while(temp != '\n')

{

arr[tolower(temp)]++;

temp = getchar();

}

//输出第一行中含有第二行字符的个数

temp = getchar();

printf("%d\n", arr[tolower(temp)]);

return 0;

}

发表于 2020-08-23 14:09:33

回复(0)

0

#include

#include

int main()

{

std::string s;

char t;

while(getline(std::cin,s)&&std::cin>>t)

{

int a=0;

int c=t;

for(int i=0;i

{

if(c==32&&s[i]==c)

{

a++;

}

if(c>=49&&c<=57&&s[i]==c)

a++;

if(c>=65&&c<=90&&s[i]==c||c>=65&&c<=90&&s[i]==c+32)

a++;

if(c>=97&&c<=122&&s[i]==c||c>=97&&c<=122&&s[i]==c-32)

a++;

}

std::cout<

}

return 0;

}

发表于 2020-08-19 10:47:46

回复(0)

0

使用ctype标准库函数,避免重复造轮子,写好看的代码。

思想:gets()获取字符串,getchar()获取比对字符。将比对字符转成小写(或大写),对字符串进行遍历比对。 #include

#include

int main()

{

char str[2000];

int i =0;

int count = 0;

char character;

gets(str);

character = getchar();

if(isupper(character))

character = tolower(character);

for (i =0; *(str+i) != 0; i++)

{

if (character == *(str+i) || character == tolower(*(str+i)))

count++;

}

printf ("%d", count);

return 0;

}

编辑于 2020-08-19 15:41:18

回复(0)

0

#include 

#include 

int main(void)

{

char s[1000];

while(gets(s) != 0)

{

char c;

int n = 0;

c = tolower(getchar());

getchar(); // 将'\0'读出来,否则影响后续

for (int i = 0; s[i] != '\0'; i++)

{

if (c == tolower(s[i])) { n++; }

}

printf("%d\n", n);

}

return 0;

}

发表于 2020-08-15 13:48:10

回复(0)

0

首先输入字符串和字符,然后来把字符串中的内容和字符进行对比,若想等,则+1,以此类推。同样,因为不区分大小写,所以a比A大32,因此在判断的时候,两种情况都要写。个人代码,如需改进,欢迎大家指出。

#include

using namespace std;

int main(){

string s;

char a;

int count = 0;

while(cin>>s>>a){

int len = s.size();

for(int i = 0;i

if(s[i]==a||s[i]==a-32) count++;

}

}

cout << count<

system("pause");

return 0;

}

编辑于 2020-08-15 20:28:00

回复(0)

0

#include

int main(){

char str_1[5000]; //字符串

char char_1; //字符

gets(str_1); //获取字符串

scanf("%c",&char_1); //获取字符

int hash[256]={0},count = 0; //定义哈希集合、计数单位

for(int i=0;str_1[i]!='\0';i++){ //遍历字符数组

hash[str_1[i]]++; //字符

hash[str_1[i]+'A'-'a']++; //字符大写

hash[str_1[i]-'A'+'a']++; //字符小写

}

count = hash[char_1]; //判断字符并输出

printf("%d\n",count);

}

发表于 2020-08-13 20:13:12

回复(0)

0

#include

char a[1000];

char temp=' ';

int main()

{

gets(a);

temp = getchar();

int len=strlen(a);

int count=0;

for(int i=0;i

{

if((a[i]==temp)||(a[i]==(temp-32))||(a[i]==(temp+32)))

{

count++;

}

}

printf("%d\n",count);

}

发表于 2020-08-12 22:32:40

回复(0)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值