怎样利用c语言编写一个程序在一个字符串数组中查找一个指定的字符并输出他第一次

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎样利用c语言编写一个程序在一个字符串数组中查找一个指定的字符并输出他第一次相关的知识,希望对你有一定的参考价值。

怎样利用c语言编写一个程序在一个字符串数组中查找一个指定的字符并输出他第一次

#include<stdio.h>
#include<string>

void main()

char a[20],c; //a[20]为字符串,c为要查找字符
int i,n[5],num = 0,j = 0; //i,j为计数器,n[5]纪录下标,num记录个数
printf("请输入字符串(少于20个字符)\\n");
gets(a);
printf("请输入要查找字符:");
scanf("%c",&c);
for(i = 0;i <= strlen(a);i ++)

if(a[i] == c)

n[j++] = i;
num++;


if(num == 0)
printf("没有您要查找的字符\\n");
else
printf("您要查找的字符第一次出现的位置是:%d。\\n",n[0]+1);



有看不懂的地方给我信息就行
参考技术A main()

char a[10],c;
int i;
printf("请输入字符串");
scanf("%s",a);
for(i=0;i<10;i++)
if (a[i]==c)
printf("%c在字符串中是第%d个字符",c,i);
break;
if (i==10)
printf("字符串中没有此数据");
参考技术B #include <stdio.h>
#include <stdlib.h>
#include <string.h>
//查找函数
int serch(char ch,char p[])

int i=-1;
int n=strlen(p);
while(++i<n)

if(ch==p[i])break;


if(i>n)i=-1;
return i;


void main()
char str[100];
char ch;
int i;
printf("请输入字符串!\n");
scanf("%s",str);
printf("请输入想查找的字符!\n");
ch=getch();
i=serch(ch,str);

if(i>=0)
printf("字符在字符串中的下标为:%d",i);
else
printf("字符串中没有想要查找的字符!\n");
getch();

参考技术C //---------------------------------------------------------------------------

#include <stdio.h>

int search(const char *a,const char b)

int i;
for (i = 0; a[i]; i++)
if (a[i]==b) return i;

return -1;

int main(int argc, char* argv[])

char str[80],sc;
int ix;
printf("请输入一个字符串:\n");
scanf("%79s",str);
printf("请输入一个要查找的字符:\n");
fflush(stdin);
sc=getchar();
(ix=search(str,sc))==-1?printf("字符%c不存在!\n",sc):printf("字符%c首次出现的下标是%d\n",sc,ix);
return 0;

//---------------------------------------------------------------------------本回答被提问者和网友采纳

怎样用C语言写以下程序:由键盘输入一个长度小于20的字符串保存到一个数组中,利用这个字符串生成一个回文

字符串,并将得到的新字符串输出。例如:输入字符串:abcd,生成字符串:abcdcba。
以下是我写的程序:
#include<stdio.h>
#include<string.h>
int main()

char a[20],b[20];
int i,c,j;
printf("请输入一个长度小于20的字符串:\n");
gets(a);
c=strlen(a)-1;
for(i=1,j=1;i<=c;i++,j++)
b[j]=a[c-i+1];
puts(b);
printf("%s",strcat(a,b));

希望各位高手帮帮忙。

小错误,没有对j赋初值
在定义的时候改成int i,c,j=0;就可以了追问

好像还是不行?。。。。。。。你运行一下试试。
这是我的运行结果:

追答

#include
#include
int main()

char a[20],b[20];
int i,c,j;
printf("请输入一个长度小于20的字符串:\n");
gets(a);
c=strlen(a)-1;
for(i=1,j=0;i<=c;i++,j++)
b[j]=a[c-i];
b[j]='\0';
puts(b);
printf("%s",strcat(a,b));

这下可以了。。。。

追问

太感谢了!谢谢高手的帮忙,我是一个C语言初学者,还请多多指教!

参考技术A #include<stdio.h>
#include<string.h>
int main()

char a[20],b[20];
int i,c,j;
printf("请输入一个长度小于20的字符串:\n");
gets(a);
c=strlen(a)-1;
//printf("%d",c);
for(i=1,j=1;i<=c;i++,j++)

b[j-1]=a[c-i];

printf("%s",strcat(a,b));
gets(a);


你的b字符串b[0]为空,所以会输出乱码
参考技术B #include<stdio.h>
#include<string.h>
int main()

char a[40];
int i,c;
printf("请输入一个长度小于20的字符串:\n");
gets(a);
c=strlen(a);
for (i=0;i<c;i++)

a[i+c] = a[c-i-2];

puts(a);

return 0;


给分我!呵呵~追问

你写的很好,很感谢。但是,因为你不是最先回答我问题的。所以。。。。。。
但我想或许我们能成为朋友。你说呢?
因为我是C的初学者,所以还得各位高手多多指教!

参考技术C 这个问题,,我也很想问诶。我们马上考试就考这个啊。。。。呜呜呜。。。。得到正确答案通知哈啊、、

以上是关于怎样利用c语言编写一个程序在一个字符串数组中查找一个指定的字符并输出他第一次的主要内容,如果未能解决你的问题,请参考以下文章

怎样用c语言编写一个程序,实现查找一个字符串中的特定字符,并将其删除?

怎样用C语言写以下程序:由键盘输入一个长度小于20的字符串保存到一个数组中,利用这个字符串生成一个回文

用c语言编程编写函数,实现把一个字符串连接到后面一个字符串。并编写程序,在程序中自定义一个字符串数组

怎样用C语言编写个爱心图象

求解,用C语言编写一个程序,查找一个字符串在另一个字符串中出现的次数,谢谢大家了!

C语言怎样利用数组处理数据?