百韵网 >>  正文

c语言中如何输入一段字符串然后执行某程序? 在C语言中如何实现用键盘输入一个字符串,并打印出来?

来源:www.baiyundou.net   日期:较早时间
可以按照如下步骤:
1 读入字符串,可以使用scanf以%s的方式读入字符串,也可以以gets一次读入整行字符串。
2 判断字符串。使用strcmp函数,与设定的字符串相比较。如输入字符串存在字符数组cmd中,当输入"test"的时候执行程序,那么当strcmp(str, "test")返回值为0时,代表需要执行对应程序。
3 执行程序。
如果要执行的是某一个函数,那么直接在2步中判断成功时调用对应函数即可。
如果要执行的是另外一个可执行文件,可以通过
system(exec_file_name);
的方式,执行可执行文件。其中exec_file_name是存储要执行的可执行文件名及路径的字符串。

scanf("%s",a)

它的返回值并不是a的地址(也就是说不是字符串a),而是成功读取的变量个数,而且这个scanf()也不能将回车读取到a中,应该将scanf()放在strcmp()外面,另外,用到了strcmp()就要包含string.h文件:

//---------------------------------------------------------------------------
#include"stdio.h"
#include<string.h>
main()
{ void mingling(char b[]);
char a[]="zhang";
mingling(a);
}
void mingling(char b[])
{ int i;
char a[10];
i=3;
scanf("%s",a);
if(strcmp(a,b)==0)
printf("\n%d\n",i);
else
printf("error");
}
//---------------------------------------------------------------------------

如果想读取回车,就要用循环读取每个字符,例如:

//---------------------------------------------------------------------------
#include"stdio.h"
#include <string.h>
main()
{ void mingling(char b[]);
char a[]="zhang";
mingling(a);
}
void mingling(char b[])
{ int i=0;
char c,a[10]={0};
while (i!=9&&(c=getchar())!=EOF) /*用CTRL+Z或者CTRL+D结束输入*/
a[i++]=c;
i=3;

if(strcmp(a,b)==0)
printf("\n%d\n",i);
else
printf("error");
}
//---------------------------------------------------------------------------

我不知道你下边的程序是怎么运行的…………连编译也过不了……
scanf()函数的返回值不是字符串……

所以第二个程序应该改成
i=3
scanf("%s",a);
if(strcmp(a,b)==0)
…………

还有第一个程序
gets()的确不可以接收回车,但可以接收空格
而且这两个程序都正确……没有错误

#include <stdio.h>
#include <stdlib.h>

int main()
{
void mingling(char b[]);
char a[]="zhang";
mingling(a);
return 0;
}
void mingling(char b[])
{
int i;
char a[10];
i=3;
scanf("%[^\n]",a);//%[^\n]使输入可以接收空格,scanf的返回值是输入的参数的个数,不是字符串
if(strcmp(a,b)==0)
printf("\n%d\n",i);
else
printf("error");
}

scanf("%s",a),返回的是个整数呀你拿个整数与b比较不行!

#include"stdio.h"
#include"string.h"
main()
{ void mingling(char b[]);
char a[]="zhang";
mingling(a);
}
void mingling(char b[])
{ int i;
char a[10];
i=3;
scanf("%s",a);
if(strcmp(a,b)==0)
printf("\n%d\n",i);
else
printf("error");
}

放到前面一样可以符合你要的!只要你输入的是zhang他就会执行相应的函数!
怎么不符合呢?

在C语言中如何实现用键盘输入一个字符串,并打印出来?~

在C语言中输入字符串后然后打印出来的编程方法如下:
1.首先需要先定义一个存放字符串的数组空间,如给字符串100个数组空间。

2.接着使用gets()函数来获取键盘输入的字符串。一般格式为gets(定义的字符数组名)。

3.然后再使用puts()函数来输出之前输入的字符串内容。一般格式puts(定义的字符数组名)。

4.最终运行程序,即可成功实现输入字符串,然后原样在屏幕中输出字符串。

扩展资料:
1.gets从标准输入设备读字符串函数,其可以无限读取,不会判断上限,以回车结束读取,所以程序员应该确保buffer的空间足够大,以便在执行读操作时不发生溢出。
2.puts()函数用来向标准输出设备(屏幕)输出字符串并换行,具体为:把字符串输出到标准输出设备,将'\0'转换为回车换行。其调用方式为,puts(s);其中s为字符串字符(字符串数组名或字符串指针)。
参考资料:
百度百科-gets
百度百科-puts

以下代码可以做你要的加减乘除运算,变量名可以任意输入,可以有N个变量名,运算符和变量之间还可以空格,比如 :
i=1
j = i
print j
abc=22
j=i * abc
print j
print "helloworld"
#include #include #include #include using namespace std;typedef struct{int var;char varname[128];}Variable;std::vector Var;//判断变量还是数值int isVarName(char *p){if(p[0]'9') return 1;return 0;}//去掉前后空格char *FilterSpace(char *p){int i;while(*p==' ') p++;//跳过前面的空格i=strlen(p);while(i&&p[i-1]==' ') {p[i-1]=0; i--;}//去掉后面的空格return p;}//取变量int值int getInt(char *p){p=FilterSpace(p);if(isVarName(p)){for(int i=0;isizeof(newV.varname)){printf("变量名不能大于%d个字符
",sizeof(newV.varname));return;}newV.var=0;strcpy(newV.varname,p);Var.push_back(newV);v=&Var[Var.size()-1];}p=t+1;t=strstr(p,"+");if(t){//加法运算*t=0;n1=getInt(p);n2=getInt(t+1);v->var=n1+n2;//printf("%s=%d
",v->varname,v->var);//若要立即显示结果就加上本行return;}t=strstr(p,"-");if(t){//减法运算*t=0;n1=getInt(p);n2=getInt(t+1);v->var=n1-n2;//printf("%s=%d
",v->varname,v->var);//若要立即显示结果就加上本行return;}t=strstr(p,"*");if(t){//乘法运算*t=0;n1=getInt(p);n2=getInt(t+1);v->var=n1*n2;//printf("%s=%d
",v->varname,v->var);//若要立即显示结果就加上本行return;}t=strstr(p,"/");if(t){//除法运算*t=0;n1=getInt(p);n2=getInt(t+1);v->var=n1/n2;//printf("%s=%d
",v->varname,v->var);//若要立即显示结果就加上本行return;}//赋值v->var=getInt(p);return;}}void main(){char cmdstr[1024];while(1){printf(">>");gets(cmdstr);if(!strncmp(cmdstr,"print",5)){print(cmdstr+5);}else if(!strcmp(cmdstr,"exit"))//输入exit退出{return;}else if(strstr(cmdstr,"=")){Operation(cmdstr);}}}

相关要点总结:

17183573670:在C语言中如何实现用键盘输入一个字符串,并打印出来?
董萍答:在C语言中实现用键盘输入一个字符串,并打印出来的解决方法如下:1、首先定义一个字符串数组,如你可以给字符串100个数组空间。如图括号内数字即为你定义的数组大小。2、gets()函数用来获取键盘输入的字符串,括号内的s即为字符串变量。3、接着用puts()函数输出之前我们从键盘读取的字符串。括号内为...

17183573670:C语言:输入一个字符串,然后逆序输出
董萍答:include <stdio.h> int main(){ int len,i;char str[100];gets(str);len=strlen(str);for(i=len-1;i>=0;i--)printf("%c",str[i]);return 0;}

17183573670:c语言字符串数组怎么输入和输出呢
董萍答:在C语言中,有两个函数可以在控制台(显示器)上输出字符串,它们分别是:puts():输出字符串并自动换行,该函数只能输出字符串。printf():通过格式控制符%s输出字符串,不能自动换行。除了字符串,printf() 还能输出其他类型的数据。这两个函数相信大家已经非常熟悉了,这里不妨再演示一下,请看下面的...

17183573670:C语言编程题在屏幕上输入一个字符串和一个要插入的字符
董萍答:直接看代码:include<stdio.h>#include<string.h>void main(){char str[100],str_new[100],t;char *p=str;int at=0;puts("输入字符串:");gets(str);puts("要插入的字符:");t=getchar();/*.输入的字符被存放在键盘缓冲区中.直到按回车为止(回车字符也放在缓冲区中);其他字符会保留在...

17183573670:如何用C语言,从键盘输入一个字符串,将其按逆序存入另一个字符数组中并...
董萍答:以一个8为字符串为例:代码如下 include<stdio.h> int main(){ int i,j;char ch1[8],ch2[8];for(i=0;i<8;i++){ printf("请输入第%d个字符",i);scanf("%c",&ch1[i]);fflush(stdin);} for(j=0;j<8;j++){ ch2[j]=ch1[7-j];printf("%c",ch2[j]);} } ...

17183573670:c语言编程题!字符串复制。输入一个字符串,把它复制到一个字符数组中,并...
董萍答:include <stdio.h> int main(){ char a[100] = "\0",b[100] = "\0";int i = 0;printf("输入一行字符:\n");scanf("%s",a);for(i = 0;a[i] != '\0';i++){ b[i] = a[i];} printf("%s\n",b);return 0;} ...

17183573670:用C语言如何实现键盘输入一个字符串,存放到数组,然后逆序存放到原位置并...
董萍答:int main(){ char str[100];printf("输入一个字符串:");scanf("%s",str);char temp;int t=strlen(str);for(int i=0;i<t/2;i++)//这个循环用于逆序存放到原位置 { temp=str[i];str[i]=str[t-i-1];str[t-i-1]=temp;} for(i=0;i<t;i++)printf("%c",str[i]);pri...

17183573670:用C语言编写一完整源程序,从键盘输入一个字符串Str1,在新的一行输入一...
董萍答:include "stdio.h"#include "string.h"void deleteChar(char *a,char c)//从特定字符串中删除特定字符{ int i; char *d=NULL;if((d=strchr(a,c))!=NULL)//找到这个字符,从后一位向前移位,将其覆盖,达到删除的目的 { for(i=0;*(d+i)!=0;i++)(d+i)=*(d+i+1);} }in...

17183573670:C语言中如何实现输入一个字符串再输出该字符串?
董萍答:include <stdio.h> include <string.h> void main(){ char *p;gets(p);puts(p);} 可应该如何才能实现输入两个,输出两个呢?include <stdio.h> include <string.h> void main(){ char *p,*q;gets(p);puts(p);printf("\n");gets(p);q=p;puts(q);} ...

17183573670:C语言中怎么输入字符串并从中逐一读取字符?
董萍答:include<stdio.h>#include<string.h>int main(){char para[100];int i,k;/*scanf("%c",para);//%c是单个字符。。。k=scanf("%c",para);while(k!=EOF)scanf("%c",para);printf("the input words: \n");for(i=strlen(para);i>=0;i--)printf("%c",para[i]);*/i=0;...

(编辑:本站网友)
相关推荐
关于我们 | 客户服务 | 服务条款 | 联系我们 | 免责声明 | 网站地图
@ 百韵网