无论有没有字符h,输出总是-1,这是为什么?
#include<iostream>
#include<stdio.h>
#include <string.h>
using namespace std;
int main()
{
char a[50];
cin >> a;
for (int i = 0; i < strlen(a); i++)
{
if (a[i] == 'h')
{
cout << i;
break;
}
else
{
cout << "-1";
break;
}
}
return 0;
}
首先去掉else中的break。
其次在else中追加判断,当最后一个字符时,输出-1。
#include<iostream>
#include<stdio.h>
#include <string.h>
using namespace std;
int main()
{
char a[50];
cin >> a;
for (int i = 0; i < strlen(a); i++)
{
if (a[i] == 'h')
{
cout << i;
break;
}
else
{
if(i == (strlen(a) - 1))
cout << "-1";
}
}
return 0;
}
将else 改为else if (i==strlen(a)-1)
这个程序只有字符串的第一个字符为h时才会输出i,而且只为0,只要h不出现在第一位则进入else,然后直接break循环所以就一直-1,把else去掉即可
cout << "-1";
break;
将这里的break; 干掉,因为你只执行一次就跳出了