【发布时间】:2012-12-04 01:09:40
【问题描述】:
假设我有一个叫做垃圾的字符串。
无论垃圾中有什么,我都想用它制作一个 char 数组。每个元素都是字符串的一个字符。
所以,代码类似于:
const int arrSize = sizeof(garbage); //garbage is a string
char arr[arrSize] = {garbage};
但是,这将给出一个错误“无法在初始化中将字符串转换为字符”。
这样做的正确方法是什么?我只想给这该死的东西一个字符串,然后用它做一个数组。
【问题讨论】:
-
假设字符串,你的意思是
std::string,sizeof(garbage)可能不会像你想象的那样做。它只是为您提供std::string对象的大小,这是一个与字符串长度无关的编译时间常数,它是一个运行时值。 -
你是对的,本。 sizeof(garbage) 没有给我想要的东西。接得好! garbage.size() 是正确的方法。
-
是的,但是
arrSize不能用于指定arr的大小,因为它不再是编译时间常数。