你会怎么做? 用户输入一个单词,按 ENTER 后我想在每个字母前面换一个新行,并在每个字母前加一个“空格”。
它有点像楼梯。
编辑:到目前为止我已尝试过这个
#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;
}
答案 0 :(得分:3)
我知道这与OP已经完成的事情相矛盾(我不知道他是否有任何特殊要求,例如不使用字符串),但由于问题标有c++,因此可以完成更简单:
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]);
}
答案 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;
}
}