我是C ++的新手,我有一个最大大小为30的动态字符数组。我需要将数组中的名称提取为字符串,但我无法知道名称的长度。
例如,名为Bob的人应该看起来像: Bob____________________(_是空格)
但它反映如下: Bob%#$ (% $#)%@#*#@ $$#
或类似的东西。我知道这样做是因为它只是随机未分配的内存,但我怎么能在bob的末尾切断它以便我可以手动添加空格?
如果我不清楚我正在使用一个完全运行30次的for循环逐个字符地读取字母。
这是我目前的循环
char infilename[50];
char outfilename[50];
int main(int argc, const char* argv[]){
if(argc == 3)
{
strcpy (infilename,argv[1]);
strcpy (outfilename,argv[2]);
}
else
{
//do something else
}
return 0;
}
在这种情况下,n应该等于“Bob ___________________”
但是鲍勃和前面提到的一堆随机垃圾。
答案 0 :(得分:0)
如果你从一个char数组中读取这个caracters,那么你可以做一个C字符串(它应该是一个空终止的字符串' \ 0')。
n = std::string(name)
并且可以添加你想要字符串中的空格的时间。在我的代码中,我想要一个包含名称的30个字符。所以它可能就像那样。
if(n.size() < 30)
n = n + std::string(30-n.size(), ' ');