键盘输入一行字符(不大于80个字符),键盘输入一个字符,查找字符在字符串中第一次出现的位置并输出,如果没有找到,则输出-1。如:输入字符串为 This is a C program. 输入字符为p,则输出13(意为p出现在字符串的第13个字符)。
#include <stdio.h>
int main()
{
char s[81],*p,c;
p=s;
gets(s);
scanf("%c",&c);
while (*p)
{
if (*p==c)
{
break;
}
p++;
}
if (*p=='\0')
{
printf("-1");
}
else
{
printf("%d",p-s+1);
}
}
int main()
{
char s[81],*p,c;
p=s;
gets(s);
scanf("%c",&c);
while (*p)
{
if (*p==c)
{
break;
}
p++;
}
if (*p=='\0')
{
printf("-1");
}
else
{
printf("%d",p-s+1);
}
}
温馨提示:答案为网友推荐,仅供参考
第1个回答 2014-12-10
#include <stdio.h>
#include <string.h>
int fun(char *p, char ch)
{
unsigned int i = 0;
int flag = -1;
for(i = 0; i < strlen(p); i++)
{
if(ch == p[i])
{
flag = 1;
break;
}
}
if(flag == 1)
{
return i;
}
return -1;
}
int main()
{
char str[80] = "";
char ch;
int x;
printf("请输入一行字符:");
gets(str);
printf("请输入定位字符:");
scanf("%c", &ch);
x = fun(str, ch);
if(x < 0)
{
printf("-1\n");
}
else
{
printf("位置为第:%d个\n", x+1);
}
return 0;
}
#include <string.h>
int fun(char *p, char ch)
{
unsigned int i = 0;
int flag = -1;
for(i = 0; i < strlen(p); i++)
{
if(ch == p[i])
{
flag = 1;
break;
}
}
if(flag == 1)
{
return i;
}
return -1;
}
int main()
{
char str[80] = "";
char ch;
int x;
printf("请输入一行字符:");
gets(str);
printf("请输入定位字符:");
scanf("%c", &ch);
x = fun(str, ch);
if(x < 0)
{
printf("-1\n");
}
else
{
printf("位置为第:%d个\n", x+1);
}
return 0;
}