当前位置:首页 » 编程语言 » C语言如何实现输入字符
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

C语言如何实现输入字符

发布时间: 2022-02-12 12:52:03

c语言实现用户指令实现 用户输入字符串 然后根据要求执行 怎么做呢

以下代码可以做你要的加减乘除运算,变量名可以任意输入,可以有N个变量名,运算符和变量之间还可以空格,比如 :

i=1

j = i

print j

abc=22

j=i * abc

print j

print "helloworld"

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<vector>
usingnamespacestd;

typedefstruct{
intvar;
charvarname[128];
}Variable;
std::vector<Variable>Var;

//判断变量还是数值
intisVarName(char*p)
{
if(p[0]<'0'||p[0]>'9')return1;
return0;
}

//去掉前后空格
char*FilterSpace(char*p)
{
inti;
while(*p=='')p++;//跳过前面的空格
i=strlen(p);
while(i&&p[i-1]==''){p[i-1]=0;i--;}//去掉后面的空格
returnp;
}

//取变量int值
intgetInt(char*p)
{
p=FilterSpace(p);
if(isVarName(p))
{
for(inti=0;i<Var.size();i++)
{
if(!strcmp(p,Var[i].varname))
{
returnVar[i].var;
}
}
}
else
{
returnatol(p);
}
return0;
}

//显示
voidprint(char*p)
{
char*t;
p=FilterSpace(p);
if(p[0]!='"')
{
printf("%d ",getInt(p));
return;
}
t=strstr(p+1,""");
if(!t)
{
printf("error!");
return;
}
*t=0;
printf(p+1);
printf(" ");
}

//运算操作
voidOperation(char*p)
{
intn1,n2;
char*t;
Variable*v;
t=strstr(p,"=");
if(t)
{
v=NULL;
*t=0;
p=FilterSpace(p);
if(!isVarName(p))
{
printf("不能赋值给数值 ");
return;
}
for(inti=0;i<Var.size();i++)
{
if(!strcmp(p,Var[i].varname))
{
v=&Var[i];
break;
}
}
if(!v)
{
VariablenewV;
if(strlen(p)>sizeof(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;
}
}

voidmain()
{
charcmdstr[1024];
while(1)
{
printf(">>");
gets(cmdstr);
if(!strncmp(cmdstr,"print",5))
{
print(cmdstr+5);
}
elseif(!strcmp(cmdstr,"exit"))//输入exit退出
{
return;
}
elseif(strstr(cmdstr,"="))
{
Operation(cmdstr);
}
}
}

Ⅱ c语言如何实现两行输入

如果要 ,那么得输入两个回车。如果没有 ,输入一次之后第二个没输入就结束。

#include<stdio.h>

int main()

{

char c1,c2;

printf("Is the first numberan int (y/n)? ");

scanf("%c",&c1);

printf("Is the second number int (y/n)? ");

scanf("%c",&c2);

scanf("%c",&c2);

}

因为scanf把输入的回车也输入了一次,所以中间再读一下,把回车读掉。

(2)C语言如何实现输入字符扩展阅读:

C语言包含的各种控制语句仅有9种,关键字也只有32 个,程序的编写要求不严格且以小写字母为主,对许多不必要的部分进行了精简。实际上,语句构成与硬件有关联的较少,且C语言本身不提供与硬件相关的输入输出、文件管理等功能,如需此类功能,需要通过配合编译系统所支持的各类库进行编程,故c语言拥有非常简洁的编译系统。

Ⅲ c语言中如何输入输出字符串

在<string.h>头文件中用字符串处理函数输入和输出,gest用来输入,puts用来输出。

字符串输入函数gets,从键盘键入以回车结束的字符串放入字符数组中,并自动加’'。输入串长度应小于字符数组维数,字符串中可以包含空格。

字符串输出函数puts,向显示器输出字符串(输出完,自动换行,即用' '替'')。字符数组必须以''结束。

示例代码如下:

#include<string.h>

int main()

{

char str[40];

printf("请输入字符串");

gets(str);

printf("请输出字符串");

puts(str);

system("pause");

return 0;

}

(3)C语言如何实现输入字符扩展阅读

在C中,对文件的操作分为两种方式,即流式文件操作和I/O文件操作。

流式文件操作,这种方式的文件操作有一个重要的结构FILE,FILE在头文件stdio.h中定义如下:

typedef struct {

int level; /* fill/empty level of buffer */

unsigned flags; /* File status flags */

char fd; /* File descriptor */

unsigned char hold; /* Ungetc char if no buffer */

int bsize; /* Buffer size */

unsigned char _FAR *buffer; /* Data transfer buffer */

unsigned char _FAR *curp; /* Current active pointer */

unsigned istemp; /* Temporary file indicator */

short token; /* Used for validity checking */

} FILE; /* This is the FILE object */

直接I/O文件操作,这是C提供的另一种文件操作,它是通过直接存/取文件来完成对文件的处理,此类文件操作常用的函数及其所用的一些符号在io.h和 fcntl.h中定义,在使用时要加入相应的头文件。

Ⅳ c语言如何输入/字符

#include <stdio.h>

int main() {
char c = getchar();

printf("%c\n", c);

return 0;
}

Ⅳ c语言中怎么实现任意长度字符串输入

  1. 其实核心就是实现动态数组,无论字符串多长,都能够储存。

  2. 用getchar一个一个得到字符,直到文件结束。

  3. 核心代码实现:

intn=0,k=100;//初始化,字符串长度为0,字符串空间长度为100
char*s2=NULL,s1=(char*)malloc(100);//初始化字符串空间
if(s1==NULL)return;//内存分配失败,返回
while((c=getchar())!=EOF){//判断是否到文件结束,一个个读取字符
if(k<=n){//当前字符串长度大于等于字符串空间长度时
k*=2;//长度增长2倍
s2=(char*)realloc(s1,k);//重新分配内存
if(s2==NULL){//内存分配失败
free(s1);//释放已分配内存
return;
}else{//内存分配成功
s1=s2;
}
}
s1[n++]=c;//字符串赋值字符
}
s1[n]=0;//字符串末尾置为

Ⅵ C语言怎么实现字符串的任意输入

楼主的意思是不是在输入的时候不通过按回车键来结束字符串的输入就能把字符串读入程序?

Ⅶ c语言里,输入一个字符,输出一个数字该怎么写

1、首先需要知道字符本来就是用ascII码储存的,所以需要函数转换。打开VS。

Ⅷ 怎么用c语言写一个 程序。实现从键盘输入字符并写入一个文件。

1、C语言标准库提供了一系列文件操作函数。文件操作函数一般以f+单词的形式来命名(f是file的简写),其声明位于stdio.h头文件当中。例如:fopen、fclose函数用于文件打开与关闭;fscanf、fgets函数用于文件读取;fprintf、fputs函数用于文件写入;ftell、fseek函数用于文件操作位置的获取与设置。一般的C语言教程都有文件操作一章,可以找本教材进一步学习。
2、例程:

#include<stdio.h>
charc;
intmain(){
FILE*fp2=fopen("output.txt","w");//打开输出文件
if(fp2==NULL){//若打开文件失败则退出
puts("不能打开文件!");
rturn0;
}
c=getchar();//从键盘读取一个字符
fputc(c,fp2);//向输出文件写入一个字符
fclose(fp2);//关闭输出文件,相当于保存
return0;
}

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

在C语言中实现用键盘输入一个字符串,并打印出来的解决方法如下:

1、首先定义一个字符串数组,如你可以给字符串100个数组空间。如图括号内数字即为你定义的数组大小。

(9)C语言如何实现输入字符扩展阅读:

字符数组的输出:

(1)用putchar()或printf()的‘%c’格式符对数组进行字符赋值。例如,对于数组a[10]:用putchar()赋值:

for(i=0;i<10;i++)

a[i]=putchar();

用printf()赋值:

for(i=0;i<10;i++)

printf("%c",a[i]);

输出结果为:

c program[2]

(2)用printf()的'%s'格式对数组赋值。还是对于数组a[10];

printf("%s",a);

输出结果为:

c program

参考资料来源:

网络-char

网络-字符数组

Ⅹ 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);
}