编制一个函数 char*Index(char*str,char c);该函数返回字符串str中的第一次出现字符c时的位置?
2个回答
2013-10-29
展开全部
楼上的代码没有考虑字符串str不包含字符c的情况,一般这种情况应该返回一个空指针。 #include <iostream>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;
}
{
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;
}
2013-10-29
展开全部
这是完全按照要求写的cpp。其实index函数可以直接返回字符的int型位置而不需返回指针。 #include<iostream>
#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<<"请输入字符串:"<<endl;
gets(mystr);
cout<<"请输入查询字符:"<<endl;
cin>>c;
posi=index(str,c);
cout<<"字符"<<c<<"第一次出现在字符串的第"<<posi-str+1<<"个。"<<endl;
system("pause");
return 1;
}
#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<<"请输入字符串:"<<endl;
gets(mystr);
cout<<"请输入查询字符:"<<endl;
cin>>c;
posi=index(str,c);
cout<<"字符"<<c<<"第一次出现在字符串的第"<<posi-str+1<<"个。"<<endl;
system("pause");
return 1;
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询