如何将字符数组转换为字符串?

基拉

我正在编写一个程序以生成一个随机的16位数字。我的方法是使用字符数组一个接一个地存储随机数。最终,我想将此字符数组转换为字符串。我怎么做?

我尝试将其直接转换为字符串,但是当我将其输出到屏幕上时,输出在16位数字后给出了一些奇怪的字符。

#include <iostream>
#include <string>
using namespace std;

int main(){
  char acct_num[16];
  for(int x = 0; x < 16 ; x++){
      acct_num[x] = rand()%10 + '0';
    }
  acct_num[16] = '\0';

  cout<<string(acct_num)<<endl;

}

我只想要16位数字作为字符串。

园丁

您已经用完了数组的末尾。C样式的字符串称为字符串(而不是字符数组)。您已经在字符串的末尾正确添加了“ \ 0”,但是您已写入了17个字节,因此只需将char缓冲区的长度设置为17个字节,以便您的数字可以有16个字节。

使数组长17个字符:

#include <iostream>
#include <string>
using namespace std;

int main(){
  char acct_num[17];
  for(int x = 0; x < 16 ; x++){
    acct_num[x] = rand()%10 + '0';
  }
  acct_num[16] = '\0';

  cout<<string(acct_num)<<endl;

}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章