回 帖 发 新 帖 刷新版面

主题:帮忙看下

#include <stdio.h>
#include<string.h>
int main()
{
    char a[10],c[2];
    int count=0;
    printf("输入字条串:\n");
    for(int i=0;i<10;i++)
        scanf("%c",&a[i]);
    printf("输入要查找的字符串:");
    for(int i=0;i<2;i++)
        scanf("%c",&c[i]);
    for(int i=0;i<10;i++)
        if(a[i]==c[0]&&a[i+1]==c[1])
            count++;
    printf("%d",count);
    return 0;

    
}


输入:abckabtaba回车再输入ab
怎么数组c[]中c[1]就等于ascii为10的换行符了

回复列表 (共3个回复)

沙发

abckabtaba回车 --- 你这里不是有个“回车”吗?所以c[0]应该等于'\n',但为什么你是c[1]等于'\n'那就不知道了,我也很奇怪。

解决的方法很简单,要么忽略掉回车,要么将第二个"%c"改为" %c"
忽略掉回车的方法很多,比如 scanf("\n");,比如 scanf("*%c");

板凳

scanf("%c",&a[i]);
改成scanf(" %c",&a[i]);
%号前面加个空格就Ok了

3 楼

scanf("*%c") 写错了,是 scanf("%*c"),比较粗心呀

我来回复

您尚未登录,请登录后再回复。点此登录或注册