注册 登录
编程论坛 C++教室

一个问题?

牛仔我很忙 发布于 2008-10-20 22:05, 1258 次点击
#include <iostream.h>
main()
{
    char thechar;
    char thestring[30]="ABC,it is not easy to learn.";
    int i=0;
    cout<<"这是一个字符串,将其初始化为“ABC,it is not easy to learn.“"<<endl;
    cout<<"请输入查找的字符"<<endl;
    cin>>thechar;
    while(i<30)
    {
        if(thechar==thestring[i])
        {
            cout<<"字符在字符串中第一次出现的位置是"<<i+1<<endl;
            break;
        }
        i++;
    }
    if(i==29)
    {
        cout<<"查找失败"<<endl;
    }
}
书上的一道题,前面都是对的,就是“查找失败”不显示出来,我百思不得其解,觉得这个思路是对的,望有人指点下。
14 回复
#2
blueboy820062008-10-20 22:12
while(i<30)
除非你跳出while循环时,i恰好是29...
#3
blueboy820062008-10-20 22:13
很明显是你这句 if(i==29)
写错了嘛...
#4
谁与争疯2008-10-20 22:16
输入thestring中没有的字符也不显示查找失败?
#5
newyj2008-10-20 22:19
好象i永远 也得不到 29 跳出循环 来if(i==29)吧
#6
zxwangyun2008-10-20 22:21
if(i==29)
    {
        cout<<"查找失败"<<endl;
    }
这样就ok了
#7
zxwangyun2008-10-20 22:22
刚才写错了,是这样:
if(i==30)
    {
        cout<<"查找失败"<<endl;
    }
#8
f66667152008-10-20 22:29
main前面加void即可
#9
牛仔我很忙2008-10-21 22:24
[bo][un]谁与争疯[/un] 在 2008-10-20 22:16 的发言:[/bo]

输入thestring中没有的字符也不显示查找失败?

我就是想在输入没有的字符时显示查找失败
难道i不是循环了29次而+到了29?
#10
牛仔我很忙2008-10-21 22:26
[bo][un]zxwangyun[/un] 在 2008-10-20 22:22 的发言:[/bo]

刚才写错了,是这样:
if(i==30)
    {
        cout

谢谢
为什么是30而不是29?
#11
kakaqq2008-10-21 23:16
[bo][un]牛仔我很忙[/un] 在 2008-10-21 22:26 的发言:[/bo]


谢谢
为什么是30而不是29?

你写的是while(i<30){};i++啊等到i=29的时候出循环i就是30了后面的if(i==29)就不会成立了。
#12
牛仔我很忙2008-10-22 18:39
[bo][un]kakaqq[/un] 在 2008-10-21 23:16 的发言:[/bo]


你写的是while(i

恍然大悟
谢谢
#13
wxm1984272008-10-27 16:02
那请问:要是我想自己输入字符串呢?就是说从任何一个字符串中查找相应的字符,就是要让这个程序自由度大点,灵活点,又该怎么写这个程序??

[[it] 本帖最后由 wxm198427 于 2008-10-27 16:04 编辑 [/it]]
#14
荒野的雄狮2008-10-27 17:11
i++副作用挺大,建议慎用
#15
lockhawk2008-10-28 12:17
回复 13# wxm198427 的帖子
#include <iostream.h>
int main()
{
    char str[30];
    int i=0;
    char thechar;
    cout<<"请输入字符串,以#号结束:";
    cin>>str[0];
    while(str[i]!='#')
    {
        i++    ;
        cin>>str[i];
    }
    cout<<"输入要查找的字符:";
    cin>>thechar;
    while(i>=0&&str[i]!=thechar)
    {
        i--;
    }
    if(i<0)
        cout<<"查找的字符不存在!";
    else
        cout<<"要查找的字符排在第"<<i+1<<"位";
    return 0;
}
1