编制一个函数 char*Index(char*str,char c);该函数返回字符串str中的第一次出现字符c时的位置?

2024-12-25 09:02:07
推荐回答(2个)
回答1:

楼上的代码没有考虑字符串str不包含字符c的情况,一般这种情况应该返回一个空指针。 #include using namespace std;const int n = 100;char * index(char *str, char c)
{
while(*str && *str != c)
str++;
return *str ? str : 0;
}int main()
{
char s[n], c, *p;
cout << "输入字符串:";
cin.getline(s, n);
cout << "输入要查找的字符:";
cin >> c;
if(p = index(s, c))
cout << "字符\'" << c << "\'第一次出现在字符串的第" << p - s + 1 << "个位置\n";
else
cout << "字符\'" << c << "\'没有出现在字符串中\n";
return 0;
}

回答2:

这是完全按照要求写的cpp。其实index函数可以直接返回字符的int型位置而不需返回指针。 #include
#define N 20
using namespace std;
char* index(char* str,char c)
{
char *p=str;
while(*p!='\0'&&*p!=c)p++;
return p;
}int main()
{
char mystr[N];
char *str=mystr;
char c;
char *posi;
cout<<"请输入字符串:"< gets(mystr);
cout<<"请输入查询字符:"< cin>>c;
posi=index(str,c);
cout<<"字符"< system("pause");
return 1;
}