
编写一个函数index!
编写一个函数index,从一个字符串str中寻找某一个字符第一次出现的位置,例如:index(“china”,”a”)要求从字符串“china”中找到字符a,并返回字符a...
编写一个函数index,从一个字符串str中寻找某一个字符第一次出现的位置,例如:index(“china”,”a”)要求从字符串“china”中找到字符a,并返回字符a所在的位置---4,如果在字符串中找不到指定的字符,则返回-1。最好带有注释!
展开
1个回答
展开全部
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;
}
}
{
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...
点击进入详情页
本回答由网易云信提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询