在每个新行之后再添加一个空格

时间:2015-10-14 08:43:12

标签: c++ c

你会怎么做? 用户输入一个单词,按 ENTER 后我想在每个字母前面换一个新行,并在每个字母前加一个“空格”。

它有点像楼梯。

Pls help.jpg

编辑:到目前为止我已尝试过这个

#include <stdio.h>
#include <windows.h>
#include <conio.h>

int main(){

    char text[100], text2[100];
    int i = 0, j = 0, count = 0;

    printf("Vloz text:\n");

    for(i = 0; (text[i]=getchar())!='\n'; i++)
    {
    }        
    text[i] = '\0';
    count = i;

    //vloz space
    for(i = 0; i<count; i++) {
        text2[j] = text[i];
        j++;
        text2[j] = '\n';
        j++;
    }
    text2[j] = '\0';

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

    getche();
    return 0;
}

3 个答案:

答案 0 :(得分:3)

我知道这与OP已经完成的事情相矛盾(我不知道他是否有任何特殊要求,例如不使用字符串),但由于问题标有,因此可以完成更简单:

using namespace std;

int main()
{
    cout << "Please enter the string" << endl;
    string in;
    cin >> in;

    for(string::size_type i = 0; i < in.size(); ++i)
    {
        cout << string(i, ' ') << in.at(i) << endl;
    }

    return 0;
}

答案 1 :(得分:1)

使用fgets()阅读输入。

删除读取输入中的\n字符,因为fgets()附带换行符。

稍后在一行中打印每个字符

char buf[100];
int i,j;
size_t n;
fgets(buf,sizeof(buf),stdin);
n = strlen(buf);
if(n>0 && buf[n-1] == '\n')
buf[n-1] = '\0';

for(i=0;i<n;i++)
{
   j = i;
   while(j--)
   printf(" ");
   printf("%c\n",buf[i]);
}

直播代码:http://ideone.com/zfRbO2

答案 2 :(得分:1)

这里是你想要的代码......

    #include <iostream>
    #define N 20
    using namespace std;
main()
{
  char input[N];
  cout<<"enter a word:\n";
  cin>>input;
  for(int i=0,j=1;i<N;i++,j++)
  {
    for(k=0;k<j;k++) cout<<" ";
    cout<<input[i]<<endl;
  }
}