gpt4 book ai didi

c - 带指针的二维数组中最常见的字符

转载 作者:行者123 更新时间:2023-11-30 14:52:18 24 4
gpt4 key购买 nike

我想找到5个字符串中最常见的字符,我想到了这一点,我已经为特定的字符完成了它,在我的场合,但是我如何为每个字符做它,它只是我的代码的一部分

Ch 是一个指针!!!

for(i = 0; i < five; i++){
ch = strchr(cities[i], 's');

if (ch != NULL){ //if this is true
ch1++;
printf("exists in %s\n", cities[i]); //print
}
else
{
printf ("doesnt exist in %s\n", cities[i]); //print
}
}
printf("The character 's' appears in %d cities\n", ch1);

最佳答案

您必须以某种方式将每个字符出现的次数存储在某处。

给出的提示是保留一个变量来存储字符的最大出现次数和字符本身。没有其他的。对于循环,您需要考虑 a 中的所有字符至z .

代码将类似于:-(仅在您觉得自己已经尝试了足够多的情况下才查看)。

为了让您了解此代码的作用 - 它计算出现在最大城市数中的字符。如果存在平局,它首先选择较小的字母表(按字典顺序)。

for( char c = 'a'; c <= 'z';c++){
int ch1 = 0, mxch1 = 0;
char mch='?';
for(i = 0; i < numOfCities; i++){
ch=strchr(cities[i],c);
if( ch ){
printf("Exist in %s\n",cities[i]);
ch1++;
}
else
printf("Doesn't Exist in %s\n",cities[i]);
}
if( ch1 > mch1) {
mch1 = ch1;
mch = c;
}
printf("The character %c appears in %d cities\n",c,ch1);
}
printf("Character which occured in max number of cities is %c %d",mch,mch1);

最常见字符的代码会有点不同。

int charMap[26]={0};
for(size_t i = 0; i < numOfCities; i++){
for(size_t j = 0; cities[i][j]; j++)
charMap[cities[i][j]-'a']++;
}
int mx = 0;
mxi = 0;
for(size_t i = 0; i < sizeof(charMap)/sizeof(charMap[0]); i++){
if(charMap[i]>mx){
mx = charMap[i];
mxi = i;
}

printf("Character which occured max number of times is %c %d", (char)(mxi+'a'),mx);

关于c - 带指针的二维数组中最常见的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47681534/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com