【发布时间】:2016-04-08 06:12:25
【问题描述】:
如标题所示,我需要使用字符数组在某个单词的开头添加用户指定数量的空格。我需要在一个函数中执行此操作,该函数将我的数组作为参数并返回它。这是我的代码:
#include <iostream>
using namespace std;
void writeDownCharArray(char t[], int sizee)
{
for (int i=0;i<sizee;i++)
{
cout<<t[i];
}
}
char * addSpaces(char t[], int ammountOfSpaces)
{
int numberOfCharacters=0;
for (int i=0; t[i]!=NULL; i++){numberOfCharacters++;} //checking the amount of characters in my array
char t2[numberOfCharacters+10];
for (int i=0; i<ammountOfSpaces; i++) {t2[i]=' ';} //adding the sapces
for (int i=ilosc;i<numberOfCharacters+ammountOfSpaces;i++) {t2[i]=t[i-ammountOfSpaces];} //filling my new array with characters from the previous one
return t2;
}
int main()
{
int numberOfSpaces;
char t[10];
cout << "Text some word: ";
cin.getline(t,10);
cout<<"How many spaces?: ";cin>>numberOfSpaces;
writeDownCharArray(addSpaces(t, numberOfSpaces), HERE);
return 0;
}
现在:如何将其打印到屏幕上?如果我说cout<<addSpaces(t, numberOfSpaces); 它实际上会在屏幕上打印一些奇怪的东西(不是数字,只是奇怪的字符)。如果我说writeDownCharArray,那我应该在“这里”的地方放什么?
【问题讨论】:
-
为什么不使用
std::string让自己的生活更轻松? -
当前 C++ 中没有可变长度数组。您也不应该从函数中返回本地数组。
-
@EdHeal,我想,这是一个家庭作业。
-
你不应该返回对局部变量(
t2)的引用。 -
@SergeyA:几乎相同(t2 衰减为指针),OP 最后得到了悬空指针。
标签: c++ arrays char add spaces