c语言-C语言程序在字符串中查找某字符

问题描述

C语言程序在字符串中查找某字符

#include
int main(void)
{ int i, j;
char ab[80];
char x;
printf("Input a character: ");
scanf("%c",&x);
printf("Input a string: ");
gets(ab);
for(i=0;i<16;i++)
if (ab[i]==x) j=i;
printf("index=%d",j);}
输入一个字符,再输入一个以回车结束的字符串(少于80 个字符),在字符串中查找该字符?如果找到,则输出该字符在字符串中所对应的最大下标(下标从0开始);
错哪里了呢

解决方案

首先你可以用getchar()接收回车,也可输入的时候用空格隔开不要用回车!原因楼上已经解释过了!

解决方案二:

首先,for(i=0;i<16;i++)
下标有问题,应该是80
其次,你用gets的话,读入的是一个回车键,因为你输入字符之后,打了回车才可以看到下面的提示。
建议改成scanf("%s",&ab);
或者在gets前加入getchar();读取回车

还有数组读入之前最好初始化一下,要不然用strlen(ab)控制一下遍历的长度。
最后,其实你可以从后往前遍历,一旦遇到要找的字符,就退出遍历。
还有,找不到的时候,也可以给个提示。

以上- -

解决方案三:

for(i=0;i<16;i++)//输入的字符串大小是不确定,所以16应该替换成trlen(ab)
if (ab[i]==x) j=i;
printf("index=%d",j);//遍历字符串之后,可能没有匹配的字符,所以需要设置标记位,楼上的方法也不错
//把j初识化为非数组下标,比如 j=-1,然后根据j的状态判断有没有匹配字符:
if(j==-1)
printf("NotFoundn");
else
printf("index=%dn",j);

解决方案四:

先获得字符串的长度啊,不要用固定的长度

解决方案五:

for(i=0;i<16;i++)
既然是80个字符,为什么这里是16

解决方案六:

int main(void)
{ int i, j=-1;
char ab[80];
char x;
printf("Input a character: n");
scanf("%c",&x);
printf("Input a string: n");
scanf("%s", ab);
for(i=0;i<80;i++)
if (ab[i]==x) j=i;
if(j==-1)
printf("NotFoundn");
else
printf("index=%dn",j);
}
试试这个

解决方案七:

 int main(void)
{
    int i,j;
    char ab[80];
    char x;
    printf("Input a character: ");
    scanf("%c",&x);
    //getch();
    printf("Input a string: ");
    scanf("%s",ab);
    for(i=0;i<16;i++)
        if (ab[i] == x)
            j=i;
    printf("index=%d",j);
}

解决方案八:

#include
#include
#include

int main()
{
int i, j, len;
char ab[80];
char x;
printf("Input a character: ");
scanf("%c",&x);
getchar();
printf("Input a string: ");
gets(ab);
len = strlen(ab);
for(i = 0; i < len; i++)
if (ab[i] == x) j = i;
printf("index=%d",j);
return 0;
}

解决方案九:

int main()
{

    int i, j=-1;
    char ab[80];
    char x;
    printf("Input a character: ");
    scanf("%c", &x);
    //getch();
    printf("Input a string: ");
    scanf("%s", ab);
    for(i = strlen(ab) - 1; i >= 0; i--)//获取最大下标
    {
        if (ab[i] == x)
        {
            j=i;
            break;
        }
    }
    if(j == -1)
        printf("NotFoundn");
    else
        printf("index=%dn",j);
}

解决方案十:

原因大家都说了,总结一下,所有查找/比较的算法都需要注意操作数的范围。

时间: 2024-11-05 12:27:36

c语言-C语言程序在字符串中查找某字符的相关文章

PHP在字符串中查找指定字符串并删除

$a = "abcababa";$count=strpos($a,"ab");$str=substr_replace($a,"",$count,2); 输出结果:cababa代码虽短,但也算是一个小算法!

PHP在字符串中查找指定字符串并删除的代码_php技巧

$a = "abcababa"; $count=strpos($a,"ab"); $str=substr_replace($a,"",$count,2); 输出结果:cababa 代码虽短,但也算是一个小算法!

c语言-C语言求助,统计出一个字符串中的单词数

问题描述 C语言求助,统计出一个字符串中的单词数 /*7.编写一个函数,统计出一个字符串中的单词数, 将每个单词存起来,并且返回最长单词. 函数原型定义如下:char * word ( char * str ) ;*/ #include #include char *word(char *str) { int i=0,maxi,j=0,k=0,flag=0; int s,t; char *p[100]; while(str[j]!='') { if(str[j]==' ') { str[j]='

php实现指定字符串中查找子字符串的方法_php技巧

本文实例讲述了php实现指定字符串中查找子字符串的方法.分享给大家供大家参考.具体分析如下: 对strpos()函数可以用来在php中查找子字符串.strpos()函数将试图找到子字符串在源字符串中首次出现的位置.如果找到了,它会返回一个非负整数表示子字符串出现的位置. 否则它会返回一个布尔值false. <?php $haystack1 = "2349534134345w3mentor16504381640386488129"; $haystack2 = "w3men

经典算法面试题目-设计算法移除字符串中重复的字符(1.3)

题目 Design an algorithm and write code to remove the duplicate characters in a string without using any additional buffer. NOTE: One or two additional variables are fine. An extra copy of the array is not. FOLLOW UP Write the test cases for this metho

php实现指定字符串中查找子字符串的方法

 这篇文章主要介绍了php实现指定字符串中查找子字符串的方法,涉及php中strpos()函数查找字符串的技巧,具有一定参考借鉴价值,需要的朋友可以参考下     本文实例讲述了php实现指定字符串中查找子字符串的方法.分享给大家供大家参考.具体分析如下: 对strpos()函数可以用来在php中查找子字符串.strpos()函数将试图找到子字符串在源字符串中首次出现的位置.如果找到了,它会返回一个非负整数表示子字符串出现的位置. 否则它会返回一个布尔值false. ? 1 2 3 4 5 6

Base-64 字符串中的无效字符

问题描述 各位大神,最近用阿里云的OSS,我把字符串用gzip算法压缩后上传到服务器,再取回来,解压,值没变,但为什么解压不了?报"Base-64字符串中的无效字符"的错误,求各位大神们帮忙看看?代码如下:classProgram{staticStringaccessKeyId="******";staticStringaccessKeySecret="******";staticStringbucketName="***";

PowerShell实现在字符串中查找大写字母_PowerShell

如果你想找到字符串中的大写字符,你可能会使用正则表达式.亦或者使用你的大写字母列表一个个匹配,当然更灵活的是使用.NET中的 IsUpper()函数. 小编注:.NET是PowerShell的土壤,尽最大可能挖掘出这些framework框架中的函数,是我们伸手党永恒的追求. 下面的例子,会扫描字符串中的每一个字符,然后返回遇到的第一个大写字母的位置: $text = 'here is some text with Uppercase letters' $c = 0 $position = for

js 字符串中查找字符串实现方法

js 字符串中查找字符串实现方法 最简单的方法就是利用indexof来实例,网页特效中indexof函数方法返回一个整数值,指出 string 对象内子字符串的开始位置.如果没有找到子字符串,则返回 -1.如果 startindex 是负数,则 startindex 被当作零.如果它比最大的字符位置索引还大,则它被当作最大的可能索引. indexof函数是从左向右执行查找.否则,该方法与 lastindexof 相同. var cts = "bbltext"; if(cts.index