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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在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

参考技术A

在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();



参考技术B

在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

百度百科-字符数组

参考技术C

乱码的产生是因为你未初始化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)以及超级电脑等作业平台。

参考技术D

首先,你代码中有一个逻辑错误,即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];

即为二维字符数组。

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

C++编程,从键盘输入两个数组,求两个数组的交集并输出。

比如输入a【】=1,2,3,4,5,6,b[]=4,5,8,9那么交集c【2】=4,5。

比如: A = 1 3 4 5 7, B = 2 3 5 8 9, 那么交集就是 3 5.

思路:

1. 每一次从B数组中取一值,然后在A数组里逐个比较,如果有相等的,则保存。该算法复杂度为 O(MN). M, N 分别为数组 A B 的长度。
参考技术A 获取键盘输入的代码应该不用贴出来了吧
void main()
//定义数组
int a[] = 1,2,3,4,5,6;
int b[] = 5,6,7,8;
//获取数组长度
int arrayLA = getArrayLen(a);
int arrayLB = getArrayLen(b);
//交集数组
int c[];
int arrayLC;
//将两个数组的每个元素进行比较,获取相同数组,即交集
for(int i = 0; i < arrayLA;i++)
for(int j = 0; j < arrayLB;j++)
if(a[i] = b[j])
//将交集放置在交集数组中
c[arrayLC] = a[i];
//交集数组下标加一
arrayLC++;



cout << c <<endl;
cout << "数组的长度:" << getArrayLen(c) << endl;

int getArrayLen(T& array)
//使用模板定义一 个函数getArrayLen,该函数将返回数组array的长度
return (sizeof(array) / sizeof(array[0]));
参考技术B 可以一次读入N个数据。可以考虑以回车结束读入的一组。
参考如下写法:
#include "stdio.h"
#define Max 100
int X[Max]=0,,Y[Max]=0,;
int main()

int i=0,j=0;
int a,b;
char c=0;

printf("输入第一个数组(以空格分开,回车结束)");
while((c!='\n'))
scanf("%d%c",X+i++,&c);
c=0;
printf("输入第二个数组(以空格分开,回车结束)");
while((c!='\n'))
scanf("%d%c",Y+j++,&c);

for(a=0;a<i;a++)
for(b=0;b<j;b++)
if(X[a]==Y[b])
printf("%d \t",X[a]);
return 0;

如果能知道自己喜欢的又觉得不错的就可以了用手机啦。
参考技术C

按照题目要求编写的程序如下(见图,图中重复的地方只需写一次)

参考技术D 还是有机会的太厉害了。

以上是关于在C语言中如何实现用键盘输入一个字符串,并打印出来?的主要内容,如果未能解决你的问题,请参考以下文章

Python语言编写程序,将两个整数a和b合并成一个整数放到c里面,并打印出来?

C语言如何在键盘中输入一个数字字符串并进行排序

C++编程,从键盘输入两个数组,求两个数组的交集并输出。

用c语言写一个函数,从键盘得到整行的输入.

c语言中从键盘输入N个字符串,将字符串按从小到大的顺序排列并输出

c语言编程 一维数组和函数