當前位置:首頁 » 編程語言 » 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);
}