C语言中怎么一次性的输入多行(不确定是多少行的)字符串,然后把它们全反过来输出,比如输入 wo s

供稿:hz-xin.com     日期:2025-01-13
C语言如何一次输入多个字符串,然后再输出

1、首先打开visual studio软件,新建一个C语言文件。

2、接着在C语言文件的顶部导入库内。

3、接着运用scanf函数接收用户输入的字符串。

4、然后我们利用printf函数打印一下用户输入的内容。

5、运行程序以后就会弹出如下图所示的CMD界面,我们输入内容就会自动接收到,然后原样输出内容。

6、最后如果你接收其他的类型,比如整数,那么类型就需要改变成int,如下图所示,并且scanf里面的接收类型变为d%。

这个应该满足要求
你可以先试试
#include
int main()
{
char s;
char p;
s = 0;
while(p=getchar())
{
if(p=='
'&&s==p)
break;
s = p;
putchar(p);
}
return 0;
}

#include <stdio.h>

#include <stdlib.h>

int main()

{

    char* buf = NULL; //动态分配  //char buf[1024]; //指定长度

    char ch;

    int len = 0,i;


    printf("Please input some line:
");

    while(scanf("%c",&ch)==1 && ch!=EOF && ch!='#'){ //定义一个结束符或者ctrl+z/d

        //动态的实现

        buf = (char*)realloc(buf,sizeof(char)*(len+1));

        buf[len++] = ch;

        //buf[len++] = ch;  //指定长度

    }

    printf("reverse your input to print:
");

    for(i=len-1;i>=0;i--){

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

    }

    free(buf); //动态清除

    return 0;

}



【首先】是多行字符串的输入和保存。可以:
开设一个字符串数组如下,其中N定义最多可记录多少行,M定义每行可保存多少个字符,改变#define定义可以调整这两个数据
#define N 1024 //最多1024行
#define M 256 //每行最多存储255个字符
char input[N][M];
实际输入一行可以用gets函数实现,判断gets函数的返回值可知道是否结束输入(比如输入Ctrl+Z的组合键结束),每输入一行,记录的行数加1,最后可得到实际输入的行数和按行号顺序保存在input数组中的所有字符串。

【然后】是倒序输出字符串,每个字符串倒序输出。可以:
按照倒序给出input的第1维下标,每行输出一个字符串,在输出每个字符串时,找到字符串末尾(都是以字符'\'结束的),然后输出一个字符再往回倒退一个字符,直至输出完整个字符串。如:
for ( i=n-1;i>=0;i-- )
{ nn=0; while ( input[i][nn] ) nn++;
for ( j=nn-1;j>=0;j-- ) printf("%c",input[i][j]);
printf("\n");
}

for(i=0;i<20;i++)
scanf("%d",&a[i]);
for(i=0;i<19;i++) //冒泡排序排列20个整数
for(j=0;j<10-i;j++)
if(a[j]>a[j+1])
{
t=a[j];a[j]=a[j+1];a[j+1]=t;}
for(i=0;i<20;i++) //输出排序后的20个整数
printf("%d ",a[i]);

#include<stdio.h>

#include<string.h>

void main()

{

char str[100];

int length,i;

printf("输入字符:");

gets(str);

length = strlen(str);

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

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


printf("
");

}



C语言中怎么一次性的输入多行(不确定是多少行的)字符串,然后把它们全反...
int main(){ char* buf = NULL; \/\/动态分配 \/\/char buf[1024]; \/\/指定长度 char ch;int len = 0,i;printf("Please input some line:\\n");while(scanf("%c",&ch)==1 && ch!=EOF && ch!='#'){ \/\/定义一个结束符或者ctrl+z\/d \/\/动态的实现 buf = (char*)realloc(buf,s...

C语言中怎么输入不确定的数
我给你写一个,绝对没有输入数目的限制。用指针来解决这个问题。数组是不行的。include<stdio.h> include<alloc.h> void main(){int *p,i,k;scanf("%d",&k);\/*你想输入几个数,就输入几。*\/ p=(int *)malloc(20*sizeof(int));\/*申请20个整数类型的空间*\/ for(i=0;i<k;i++)sc...

c语言 从键盘输入个数不确定的字符
include<stdio.h>int main(){ char ch; int class1=0, class2=0, class3=0; while ((ch = getchar()) != '\\n') { switch (ch) { case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8':...

怎么用C语言的scanf实现一次输入若干个数据
根据需要一般选择如下3种方法:1,已知数量,且个数较少:scanf("%d%d%d",&a&b&c);2,已知数量,但数量较多:for(int i=0;i<n;i++)scanf("%d",&a[i]);3,不知道数量 int i=0;while(scanf("%d",&a[i])){ i++;}

C语言,多组输入,每一行输入几个整数,但是每一行输入的数的个数不确定...
增加判断结束的标志就可以了,比如说我这里判断是以-1 作为结束符,然后输入所有已经输入的内容。include<stdio.h> void main(){ printf("input you integer\\n");int a[100];int temp=0;scanf("%d",&temp);int i=0;while(temp!=-1){ a[i]=temp;scanf("%d",&temp);i++;} int j=...

c语言中如何同时输入小数和整数
同时,考虑到程序的可读性和维护性,应避免在代码中进行复杂的输入处理。简化代码逻辑,使每个部分功能明确,有助于提高代码的可维护性。同时,使用适当的注释,解释输入处理过程,有助于其他开发者理解和维护代码。综上所述,在C语言中同时输入小数和整数并不复杂,关键在于正确使用数据类型和格式化字符串...

c语言怎么写输入数据有多组,每组输入一个正整数N?
&N);while(N%2==0) N=N\/2;if (N==1) printf("1\\n"); else printf("0\\n");} return 0;} === 你的输入输出例子有点问题。2 应当是组数,输出 时 怎么 把 2 也作为 一个 数据 判断它是否是2 的幂了?如果确实有此要求,你就把 g 也判断和输出一次。

c语言中怎样输入多组数据 每组数据个数不确定 每组数据占一行_百度知 ...
void main { int i;char *a[10];\/*可以用来存储10组数据的首地址,如果是其他类型的话,定义时用其他类型说明替换char*\/ for(i=0;i<10;i++){ printf("请输入一个字符串数据:");gets(a[i]);\/*这样a[i]指向你输入的字符串首个字符的地址*\/ } for(i=0;i<10;i++)puts(a[i])...

C\/C++语言中,在不确定用户输入数据个数的情况下来控制循环结束?_百度...
可以参考下面的代码:int main(){ int a[100],i=0,ch=0;printf("请输入一组整形数据(不超过100个):");do{ scanf("%d",&a[i++]);ch=getchar();}while(ch!='\\n');for(ch=0;ch

C语言编程实现:从键盘中输入任意一个多位的整数(位数不确定),将其每一...
思路:定义一个字符数组,利用该数组接收键盘输入的整数,接着依次遍历该数组并输出。参考代码:include "stdio.h"int main(){ int i;char a[100];gets(a);\/\/接收键盘输入 printf("%c",a[0]);\/\/先输出第一个字符 for(i=1;a[i]!='\\0';i++)\/\/接着输出各个字符 printf("$%c"...