C语言中怎么一次性的输入多行(不确定是多少行的)字符串,然后把它们全反过来输出,比如输入 wo s
C语言中怎么一次性的输入多行(不确定是多少行的)字符串,然后把它们全反过来输出,比如输入woshidagenishixiaodi...输出...idoaixihsineg...
C语言中怎么一次性的输入多行(不确定是多少行的)字符串,然后把它们全反过来输出,比如输入
wo shi da ge
ni shi xiao di
...
输出
...
id oaix ihs in
eg ad ihs ow
求大神指教指教!本人不胜感激!!! 展开
wo shi da ge
ni shi xiao di
...
输出
...
id oaix ihs in
eg ad ihs ow
求大神指教指教!本人不胜感激!!! 展开
4个回答
展开全部
#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:\n");
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:\n");
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");
}
开设一个字符串数组如下,其中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");
}
更多追问追答
追问
首先,非常感谢! 但容我再研究研究,
能直接写个代码让我具体研究下不?大神!
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2018-11-22
展开全部
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]);
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]);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询