如何用C语言编一个程序,来检测输入的字符串是不是某一个特定的字符串?

作者&投稿:地馨 (若有异议请与网页底部的电邮联系)
怎样利用c语言编写一个程序在一个字符串数组中查找一个指定的字符并输出他第一次~

#include
#include

void main()
{
char a[20],c; //a[20]为字符串,c为要查找字符
int i,n[5],num = 0,j = 0; //i,j为计数器,n[5]纪录下标,num记录个数
printf("请输入字符串(少于20个字符)
");
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("没有您要查找的字符
");
else
printf("您要查找的字符第一次出现的位置是:%d。
",n[0]+1);


}

有看不懂的地方给我信息就行

按你追问的要求改了一下。这段代码能把键盘输入的特定字符串后面双引号内的文字提取出来存入XYZ.txt文件中。在提取过程中滤除了源文件中的'
'和' '。供参考……
#include "stdio.h"//
#include "string.h"//
#include "stdlib.h"//
void main(void){
FILE *pR,*pW;
char CoStr[20],ln,ch,i=0;
if(!(pR=fopen("ABC.txt","r"))){
printf("源文件打开失败...");
exit(0);
}
printf("请输入特定字符串...
CoStr=");
ln=strlen(gets(CoStr));
do{
fseek(pR,-i,SEEK_CUR);
for(i=0;i<ln;i++)
if((ch=getc(pR))!=CoStr[i]) break;
if(ch==EOF){
printf("没有发现特定字符串%s!
",CoStr);
exit(0);
}
}while(i<ln);

if(!(pW=fopen("XYZ.txt","w"))){
printf("创建目标文件失败...");
exit(0);
}
while((ch=getc(pR))!='"' && ch!=(char)176);
while((ch=getc(pR))!='"' && ch!=(char)177){
if(ch=='
' || ch==' ') continue;
putc(ch,pW);
}

fclose(pW);
fclose(pR);
printf("文件已成功建立,名为XYZ.txt
");
}

是因为你的目的串中有个空格,用scanf输入的时候会把空格前的当成输入了这个问题吧??
我写了个代码可以处理你上面说的这个问题,如果相同打印7,不同打印0,你要是需封成函数可以在我的基础上修改.代码在vc++6上编译运行.代码如下:

#include <stdio.h>
#include <string.h>
#include <conio.h>
#define DEBUG 1
int main()
{
char src[512] = "";
char *dst = "asdf kjhf";
int fg = 0;//脚标
char ch;
printf("请输入字符串,回车结束输入:\n");
#ifdef DEBUG
//此方法可以不用回车当结束符亦可
while (ch = getch()) {
printf("%c",ch);//回显输入
if (ch == 13) {
putchar(10);//换行符
break;
} else {
src[fg++] = ch;
if (fg == 511) {
break;//再大就越界了
}
}
}
#else
//此方法结束符必须为回车用此方法时将#define DEBUG 1注释即可
gets(src);
#endif
// printf("src:%s\ndst:%s\n",src,dst);
if (strcmp(src, dst) == 0) {
printf("7\n");
} else {
printf("0\n");
}
return 0;
}

在C++和JAVA中这个是有专门函数来做的。C里面没有。

好,我给你写一个!
#include <stdio.h>
int isstr(const char *source,const char *dest)
{
int i=0,j,k;
while(source[i]!='\0')
{
k=i;j=0;
while(source[k]!='\0'&&dest[j]!='\0'&&source[k]==dest[j])
k++,j++;
if (dest[j]=='\0')
return 1;
if (source[k]=='\0')
return 0;
i++;
}
return 0;
}

int main()
{
char str_1[20];
char str_2[20];
printf("请输入第一个字符串:");
scanf("%s",str_1);
printf("请输入第二个字符串:");
scanf("%s",str_2);
if(isstr(str_2,str_1)==1)
{
printf("第一个字符串是第二个字符串的字串!\n");
}
else
{
printf("第一个字符串不是第二个字符串的字串!\n");
}
return 0;
}

qizhi0119确实写得很详细
但何必这么麻烦。。。。
不可以这样吗?
scanf("%c%c%c%c %c%c%c%c",搞七个变量啊);
scanf("%s");这个直接检测是否为空就是啦
这岂不是很简单。。。。。。。。。。
编程,就要点小聪明

直接用strcmp函数就行了,在 string.h 里面。。
#include<stdio.h>
#include<string.h>
int main()
{
char a[100];
gets(a);
if(strcmp(a,"asdf kjhf")==0)
printf("7\n");
else
printf("0");
return 0;

}

中间有个空格 麻烦一点

用C语言如何编写素数检验程序?
答:include<stdio.h> int main(){ int i,j;int sum = 0;int flag;//是否为素数 for (i = 2; i <= 51; i++) { flag = 1;for (j = 2; j <= i - 1; j++) { if (i % j == 0) { flag = 0;break;} } if (flag == 1) { sum += i;}} printf("和为:%d",...

如何用C语言编写一个简单的计算机程序?
答:int main(){ int x=8,y;printf("请输入x:8\n");scanf("%d",&x);if(x>0)y=1;else if(x<0)y=-1;else if(x=0)y=0;printf("y=%d\n",y);return 0;}

如何用c语言编写一个校验位计算程序?
答:如果是可变长度的请使用指针,进行编程,所以没法给程序:要是c的话 typedef struct{ char** astr;}mystruct;char ad[]="aaaaaaaaaaa";mystruct ms;ms.astr=&ad;

如何用c语言编写出判断一个数是否为质数的程序
答:新建一个Win32 Console Application,创建一个Hello World!程序,把如下代码粘进去运行。include "stdafx.h"include <stdio.h> void main(){ int a,k=0;printf("请输入大于1的正整数:");scanf("%d",&a);for(int i=2;i

用C语言编一个简单的程序来判断N×N的矩阵是否为一个幻方。
答:include"stdio.h"#include"math.h" int a[256][256];int sum;int check();void ins(int n); void main(){ int i,j,n,k,t,p,x; scanf("%d",&n); sum=(n*n+1)*n/2; if(n%2==1) //奇数幻方 ins(n); if(n%4==2) { //单偶数幻方 k=n/2; ins...

用C语言编写一个程序,检查从键盘输入的一行字符中有无相邻两字符相同...
答:include<stdio.h> include<string.h> main( ){ char str[1000];char prv;int i,length,have=0;gets(str);length=strlen(str);prv=str[0];for(i=1;i<length;++i){ if(prv==str[i]) have=1;prv=str[i];} if(have) printf("yes\n");else printf("no\n");getch();} ...

如何用c语言编程判断一个数是不是素数?
答:方法一:#include<stdio.h> int main(){ int i,j;printf("请输入一个正整数。\n");scanf("%d",&i);if(i<2)printf("小于2,请重新输入。\n");elseif(i%2==0)printf("%d不是一个素数。\n",i);else{ for(j=2;j<=i/2;j++){ ...

如何用c语言编写出判断一个数是否为质数的程序?
答:新建一个Win32 Console Application,创建一个Hello World!程序,把如下代码粘进去运行。include "stdafx.h"include <stdio.h> void main(){ int a,k=0;printf("请输入大于1的正整数:");scanf("%d",&a);for(int i=2;i

如何用C语言编写一个简单的程序!
答:1、鼠标左键双击c语言软件,打开,打开后界面如图,点击关闭即可 2、点击上方程序窗口左上角的文件,选择新建 3、在打开的窗口中选择文件,下边一般是第四个 c++Source file,输入文件名(hellw.c),一定要以“.c”为后缀结尾 4、进入编辑页面在,页面编辑源代码就可以 includestdio.h void main()...

用c语言编写程序,提示用户输入两个字符串,并检验第一个字符串是否为第...
答:在C++和JAVA中这个是有专门函数来做的。C里面没有。好,我给你写一个!include <stdio.h> int isstr(const char *source,const char *dest){ int i=0,j,k;while(source[i]!='\0'){ k=i;j=0;while(source[k]!='\0'&&dest[j]!='\0'&&source[k]==dest[j])k++,j++;if (...