#include<stdio.h>
#include<string.h>
int panduan(char *str ,char x);
void main()
{
char zimu[100];
char zi;
printf("请输入字母");
gets(zimu);
gets(zi);
panduan(zimu , zi);
printf("次数 = %d", panduan(zimu , zi));
}
int panduan(char *str , char x)
{
int i , leng , cishu = 0;
leng = strlen(str);
for( i = 0 ; i < leng - 1
; i++)
{
if(str[i] != x )
{
}
else
cishu++;
}
return cishu;
}
//目的是输入一串字母,再输入一个字母判断这个字母在这串字符中出现的次数
大佬 为什么老是0次数啊
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- benbenli 2021-05-13 23:04关注
#include<stdio.h> #include<string.h> int panduan(char *str ,char x); void main() { char zimu[100]; char zi; printf("请输入一行字符串:"); gets(zimu); printf("请输入一个字符:"); zi = getchar(); panduan(zimu , zi); printf("次数 = %d", panduan(zimu , zi)); } int panduan(char *str , char x) { int i , leng , cishu = 0; leng = strlen(str); for( i = 0 ; i < leng - 1 ; i++) { if(str[i] != x ) { } else cishu++; } return cishu; } //目的是输入一串字母,再输入一个字母判断这个字母在这串字符中出现的次数 // Output 请输入一行字符串:ASDFGABCDEFQAZAAABBBCCCDDDAA 请输入一个字符:A 次数 = 7
主要是zi是定义喂一个字符,gets(zi)造成越界,后果不课预计。应该定义为u字符数组或者用getchar()函数只读一个字符。你看我修改后的代码运行通过了
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 拟通过pc下指令到安卓系统,如果追求响应速度,尽可能无延迟,是不是用安卓模拟器会优于实体的安卓手机?如果是,可以快多少毫秒?
- ¥20 神经网络Sequential name=sequential, built=False
- ¥16 Qphython 用xlrd读取excel报错
- ¥15 单片机学习顺序问题!!
- ¥15 ikuai客户端多拨vpn,重启总是有个别重拨不上
- ¥20 关于#anlogic#sdram#的问题,如何解决?(关键词-performance)
- ¥15 相敏解调 matlab
- ¥15 求lingo代码和思路
- ¥15 公交车和无人机协同运输
- ¥15 stm32代码移植没反应