用C语言编程:输入一串字符,使得输出中一个字符占一行。。求大神现身!

如题所述

第1个回答  2013-05-15
#include<stdio.h>
#include<conio.h>
void main()
{
    int i=0;
    char szShow[100]={0};
    scanf("%s",szShow);
    for(i=0;i<100;i++)
    {
        if(0==szShow[i])break;
        else printf("%c\n",szShow[i]);
    }
    getch();
}

经测试可以完成你要的功能

追问

如果输出是 一个单词占一行 这个要怎么改?

追答

单词之间的分隔符是空格,scanf()函数遇见空格结束,所以不能用它来读取输入,换做getchar(),以回车作为输入结束标志。

输出的时候做一个判断,遇到空格输出换行。代码如下:

#include<stdio.h>
#include<conio.h>
void main()
{
    int i=0;
    char szShow[100]={0};
    for(i=0;i<100;i++)
    {
        szShow[i]=getchar();
        if('\n'==szShow[i])break;
    }
    for(i=0;i<100;i++)
    {
        if(0==szShow[i])break;
        else if(' '==szShow[i])printf("\n");
        else printf("%c",szShow[i]);
    }
    getch();
}

经测试能达到你要的功能。

本回答被提问者采纳
第2个回答  2013-05-15
楼上已解答关键,就是一个循环,输出一个字符就\n换行就行了
第3个回答  2013-05-15
#include"stdio.h"
#include"string.h"
main()
{
int i;
char *str;
printf("Please input string:");
gets(str);
for(i=0;i<strlen(str);i++)
printf("%c\n",str[i]);
}
第4个回答  2013-05-15
#include<stdio.h>
void main()
{
char *str;
scanf("%s",str);
while(*str!='\0')
{
printf("%c\n",*str);
str++;
}
}
第5个回答  2013-05-15
"使得输出中一个字符占一行"什么意思呀?输出其中以个字符吗?最中间一个字符?追问

是指 输出每个字符,而且一个字符占一行。。

追答

目测楼上回答都对,我运行了一下sleeplioncj的。结果如下:

追问

如果是输出一个单词占一行这个要怎么改?

追答

//---------------------------------------------------------------------------
#include"stdio.h"
#include"string.h"
#pragma hdrstop

//---------------------------------------------------------------------------

#pragma argsused
int main(int argc, char* argv[])
{
int i;
char *str;
printf("Please input string:");
gets(str);
for(i=0;i<strlen(str);i++)
{
printf("%c",str[i]);
if (str[i]==' ')//空格
{
printf("\n");//换行
}
}
return 0;
}

相似回答