用指针编写一个程序,先从键盘上输入一个字符串,然后在该字符串中查找是否有’x’字符。如果有,输出第一

2025-04-13 19:14:17
推荐回答(4个)
回答1:

#include"stdio.h"
void main()
{
int research(char string[]);
char str[80];
int k;
printf("请输入一个字符串:\n");
scanf("%s",str);
k=research(str);
if(k!=-1)printf("第一个x的下表为%d\n",k);
else printf("该字符串中没有x!\n");
}
int research(char string[])
{
int i;
char *p=string;
for(i=0;*(p+i)!='\0';i++)
if(*(p+i)=='x')
{return i;break;}
return -1;
}
运行过了,是正确的!

回答2:

#include
main()
{
char a[100];
char *p;
p=&a[0];
printf("输入一个字符串:");
gets(a);
for(;*p!='\0';p++)
{
if(*p=='x')
{
printf("x位于第%d个。\n",p-&a[0]+1);
break;
}
}
if(*p=='\0')
printf("-1\n");
}
(VC++6.0运行)

回答3:

源码如下:
#include

int searchA(char *s, int c)
{
int i = -1;
char *p = s;
while (p != NULL && *p != '\0' && *p != c) p++;

if (p != '\0') i = (int)(p - s) + 1; // 如果以0为起始,就把+1去掉

return i;
}

int main (int argc, const char * argv[])
{
int s[100] = {0}, index;
scanf("%s", s);
index = searchA(s, 'x');
printf("%d\n", index);

return 0;
}

回答4:

#include "stdio.h"

void main()
{
char str[81];
char *p=str;
gets(str);
while(*p)
{
if(*p=='x')
break;
p++;
}
if(*p=='x')
printf("%d\n",p-str);
else printf("-1\n");
}