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

我写了一个程序,但运行怎么也不正常
#include<stdio.h>
void main()
{
char sf;
scanf("%s",&sf);
printf("%s",sf);
getch();
}
救命啊……我已经改成这样了,可还是不行。无论输入什么,输出的结果都类似于“ termination”加上三个字符的乱码。
#include<stdio.h>
void main()
{
char sf[100];
gets(sf);
printf("%s",sf);
getch();
}

在C语言中输入字符串后然后打印出来的编程方法如下:

1.首先需要先定义一个存放字符串的数组空间,如给字符串100个数组空间。

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

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

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

扩展资料:

1.gets从标准输入设备读字符串函数,其可以无限读取,不会判断上限,以回车结束读取,所以程序员应该确保buffer的空间足够大,以便在执行读操作时不发生溢出。

2.puts()函数用来向标准输出设备(屏幕)输出字符串并换行,具体为:把字符串输出到标准输出设备,将'\0'转换为回车换行。其调用方式为,puts(s);其中s为字符串字符(字符串数组名或字符串指针)。

参考资料:

百度百科-gets

百度百科-puts

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2019-09-13

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

#include <stdio.h>

void main()

{

char array[100];

printf("please input the string: \n");

scanf("%s", array);

printf("%s\n",array);

}

扩展资料:

键盘输入一个字符串打印出来,用java语言实现:

public static void main(String[] args) {

System.out.println("请输入字符串:");

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

try {

String str = br.readLine();

System.out.println(str);

}

catch (IOException e) {

e.printStackTrace();

}

}

本回答被网友采纳
第2个回答  2019-02-05

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

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

2、gets()函数用来获取键盘输入的字符串,括号内的s即为字符串变量。

3、接着用puts()函数输出之前我们从键盘读取的字符串。括号内为字符串数组的名字,要与前面的保持一致。

4、然后点击运行,得到以下结果即为正确。

扩展资料:

字符数组的输出:

(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

百度百科-字符数组

本回答被网友采纳
第3个回答  推荐于2019-10-17

乱码的产生是因为你未初始化sf[100]

修改为:

#include 

#include            //strlen的调用

main()

{

int n,i;

char a[20]={0};         //初始化数组

printf("please input a string:");

gets(a);                   //从键盘读入字符串

n=strlen(a);            //计算输入的数组长度

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

for(i=n-1;i>=0;i--)

putchar(a[i]);          //倒序输出字符串

putchar('\n');

}

拓展资料

C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。

尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。

本回答被网友采纳
第4个回答  推荐于2019-08-14

首先,你代码中有一个逻辑错误,即char sf;这是定义单字符,而想要定义字符串可使用字符数组,即将char sf;改为  char sf[101] 即可。(数组大小可根据字符串大小需求进行更改)

正确代码:

#include<stdio.h>

void main()

{

char sf[101];

scanf("%s",&sf);

printf("%s",sf);

getch();//这行可删可不删 

}

扩展内容:

字符数组:

字符数组是指用来存放字符数据的数组。其定义的一般形式为: char 数组名[数据长度] 。字符数组用于存放字符或字符串,字符数组中的一个元素存放一个字符,它在内存中占用一个字节。C语言中没有字符串类型,字符串是存放在字符型数组中的

用来存放字符数据的数组称为字符数组。字符数组中的一个元素存放一个字符。定义字符数组的方法与定义数值型数组的方法类似。

字符数组定义:

其定义的一般形式是:char 数组名[数据长度]

例如:

char c[10];

c[0]='I'; c[1]=' '; c[2]='l'; c[3]='o'; c[4]='v'; c[5]='e'; c[6]=' '; c[7]='y'; c[8]='o'; c[9]='u';

以上定义了c为字符数组,包含10个元素。

由于字符型数据是以整数形式(ASCII代码)存放的,因此也可以用整型数组来存放字符数据,例如:

int c[10];

但这时每个数组元素占2个字节的内存单元,浪费存储空间。 [1] 

字符数组也可以是二维或多维数组,例如:

char c[5][10];

即为二维字符数组。

资料参考:字符数组 - 百科

本回答被网友采纳
相似回答