当前位置:  开发笔记 > 编程语言 > 正文

在字符数组的开头添加空格

如何解决《在字符数组的开头添加空格》经验,为你挑选了1个好方法。

在标题中,我需要使用字符数组在某个单词的开头添加用户指定的空格数.我需要在一个函数中执行它,该函数将我的数组作为参数并返回它.这是我的代码:

#include 

using namespace std;

void writeDownCharArray(char t[], int sizee)
{
    for (int i=0;i>numberOfSpaces;
    writeDownCharArray(addSpaces(t, numberOfSpaces), HERE);
    return 0;
}

现在:我如何将其打印到屏幕上?如果我说它cout<实际上在屏幕上打印出一些奇怪的东西(不是数字,只是奇怪的字符).如果我说writeDownCharArray,那么我应该把什么放在"这里"呢?



1> NathanOliver..:

解决这个问题的C++方法就是使用std::string类似的方法

std::string add_spaces(const std::string & line, std::size_t number_of_spaces)
{
    std::string spaces(number_of_spaces, ' ');
    return spaces + line;
}

如果你不能使用std::string那么你正在做必须处理动态内存分配和更改

char t2[numberOfCharacters+10];

char * ts = new char[numberOfCharacters + ammountOfSpaces + 1];

我们必须有这个,因为可变长度数组不是标准的,并且尝试返回指向函数中声明的数组的指针将留下悬挂指针并尝试使用它是未定义的行为.

由于new[]在函数中使用了,因此您需要记住调用delete[]完成后返回的指针.这是使用a的另一个好处,std::string因为它照顾自己.

writeDownCharArray您而言,您不需要大小参数,因为cout可以处理空终止的c字符串.你可以简单地拥有

void writeDownCharArray(char t[])
{
    cout<

然后你的主要看起来像

char * foo = addSpaces(t, numberOfSpaces);
writeDownCharArray(foo);
delete [] foo;

推荐阅读
135369一生真爱_890
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有