长度()在C 中显示0(尽管字符串中存储在其中)
length() is showing 0 in c++ (although string has a content stored in it)
我正在编写此代码,用于使用循环将一个字符串内容存储到另一个字符串中。(在以下代码中)执行for循环后,字符串str1包含字符串str content,但是为什么str1.length()显示0(零),这就是我无法弄清楚为什么?
string str;
str = "1234";
string str1;
for (int i = 0; i < str.length(); ++i) {
str1[i] = str[i];
}
cout << str1.length() << endl;
您需要首先调整新的字符串str1
。这是因为您在字符串之外加速了内存区域(在某种程度上,您正在寻找字符串的位置)。resize
使字符串足够大以适合您的新字符串。
尝试以下操作:
string str;
str = "1234";
string str1;
str1.resize(str.length()); // NEW LINE
for (int i = 0; i < str.length(); ++i) {
str1[i] = str[i];
}
cout << str1.length() << endl;
但是,如果您只想复制字符串,则可以使用str1 = str
相关文章:
- 两个字符串在 c++ 中不相等
- 当我在其中一个线程执行中(在activemq-cpp中)捕获到特定值时,我如何终止/停止所有其他线程
- 我的目标是编写一个程序来计算和存储字符串在字符数组中出现的位置
- C 字符串在显式构造函数中分配值C++?
- 修改链表主函数代码,用户将在其中输入节点的索引和数据以及正确的消息
- 如果我们在其中输入一个整数,则字符会给出整数作为输出,但是当分配给它一个整数时,这不会发生。为什么?
- 我写了一个简单的矢量程序,在其中我得到了以下输出。你能帮我理解它的输出吗?
- 为什么此字符串在传递到stoi时被视为无效参数
- 从我的2d数组中的一列返回的字符串值被压缩为一个字符串(在Mac os上打开Windows txt文件)
- 为什么我的数组输出一个不在其中的元素
- 定义在其中执行不同代码路径的代码节
- 格式化的时间字符串在解析为time_point时会产生小时差异
- 如果字符串在 C/C++ 中没有 NUL 字符(以防编译器允许它通过)会发生什么情况?
- 这是我的 .h 文件的一些错误,当我在其中包含我的类模板时,它显示 [错误] 未终止 #ifndef
- 是否可以检索与柯南包管理器一起打包的库的源代码,以便在其中进行调试?
- 编译器如何将链表中的地址字符串在一起?
- 如何在其中创建2D字符串向量并插入数据
- 长度()在C 中显示0(尽管字符串中存储在其中)
- 从文件中读取一行,并在其中搜索字符串(c++)
- 我想创建一个函数,我可以在其中输入一个字符串,它会输出一个混乱的字符串版本