编写一个函数index!

编写一个函数index,从一个字符串str中寻找某一个字符第一次出现的位置,例如:index(“china”,”a”)要求从字符串“china”中找到字符a,并返回字符a... 编写一个函数index,从一个字符串str中寻找某一个字符第一次出现的位置,例如:index(“china”,”a”)要求从字符串“china”中找到字符a,并返回字符a所在的位置---4,如果在字符串中找不到指定的字符,则返回-1。最好带有注释! 展开
 我来答
veket的小号
2012-12-25 · TA获得超过3373个赞
知道大有可为答主
回答量:3762
采纳率:0%
帮助的人:4292万
展开全部
int index(char *s, char c)
{
char *p = s;/* 动指针 指向字符串开头 */
while(*p)/*如果*p为'\0'(ascii吗为零),(p指向字符串结束标志) ,循环结束,*/
{
if(*p==c)/*如果找到相同的字符立马结束查找,break跳出 结束循环*/
{
break;
}
p++;/* p 加1 ,继续检测下一个字符是不是 要找的字符*/
}
if(*p)/*如果p在到达 结尾标志前 就找到了要找的字符 break跳出来, p 指向的必然 非零 */
{
return p-s;
}
else/*p指向'\0', 从 头到尾找了一遍 没找到 */
{
return -1;
}
}
更多追问追答
追问
能不能换一种简单点的方法,指针我还没学,而且请写完整一点!麻烦了!
追答
改成形参数组
int index(char s[], char c)
{
int i = 0;/* 下标指向字符串开头 */
while(s[i])/*如果s[i]为'\0'(ascii吗为零),(下标 i 指向字符串结束标志) ,循环结束,*/
{
if(s[i]==c)/*如果找到相同的字符立马结束查找,break跳出 结束循环*/
{
break;
}
i++;/* i 加1 ,继续检测下一个字符是不是 要找的字符*/
}
if(s[i])/*如果i在到达 结尾标志前 就找到了要找的字符 break跳出来, i 指向的必然 非零 */
{
return i;
}
else/*i指向'\0', 从 头到尾找了一遍 没找到 */
{
return -1;
}
}
网易云信
2023-12-06 广告
网易云信提供一站式的 1 对 1 UIKit 组件库,可以更快地搭建 1 对 1 社交平台,能够快速实现音视频呼叫、音视频通话、1对1消息发送、美颜和礼物功能,直接可以复用我们的组件源码就可以了。优势:1、全套1对1 UI组件,接入更快;2... 点击进入详情页
本回答由网易云信提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式