首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >逐字符写入字符串数组字符

逐字符写入字符串数组字符
EN

Stack Overflow用户
提问于 2015-08-11 23:51:04
回答 4查看 88关注 0票数 0

我正在做一个项目,我陷入了僵局。我很难弄清楚如何在数组中用字符编写字符串字符?

我是说:

代码语言:javascript
复制
string my_str[10];

我想访问我的str的第一个字符。

我试过这个:

代码语言:javascript
复制
    string tokens[10];
    (&tokens[0])[0] = 'a';
    (&tokens[0])[1] = 's';
    (&tokens[0])[2] = 'd';

它的工作原理类似于记号=‘a’,记号1=‘s’等等。

然后我试着:

代码语言:javascript
复制
string tokens[10];
(&tokens[0])[0][0] = 'a';
(&tokens[0])[0][1] = 's';
(&tokens[0])[0][2] = 'd';

当我编译它时,错误(string子字符串超出范围),但是当我单击abort时,它会工作。这个代码有什么问题?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2015-08-11 23:55:04

如果希望一次向字符串添加一个字符,则可以使用push_back+=运算符。例如:

代码语言:javascript
复制
tokens[0] += 'a';
tokens[0] += 's';
tokens[0].push_back('d');
票数 0
EN

Stack Overflow用户

发布于 2015-08-11 23:58:49

您创建的字符串使用

代码语言:javascript
复制
string tokens[10];

都是空的。也就是说,您有10个空的string。如果您想访问其中的一个字符,您需要调整它们的大小,例如:

代码语言:javascript
复制
string tokens[10];
for (string& str: tokens) {
     str.resize(3);
}
tokens[0][0] = 'a';
tokens[0][1] = 's';
tokens[0][2] = 'd';

当你使用,例如,

代码语言:javascript
复制
(&tokens[0])[2] = 'd';

首先获得指向数组中第一个string的指针,取消索引2,并将从字符'd' (即string('d') )转换成的string分配给它。也就是说,这个语句相当于

代码语言:javascript
复制
token[2] = 'd';
票数 0
EN

Stack Overflow用户

发布于 2015-08-11 23:59:09

您需要使用string::at进行此操作。就像这样:

代码语言:javascript
复制
char x;
string s[10];
s[0] = "asdf";
x = s[0].at(0);
printf("%c", x);

指纹。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31953857

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档