在c ++中将单词拆分为字母? [关闭]
Posted
技术标签:
【中文标题】在c ++中将单词拆分为字母? [关闭]【英文标题】:split a word into letters in c++? [closed] 【发布时间】:2020-10-21 16:02:02 【问题描述】:如何将字符串中的单词拆分为字母。 例如 "hello" 到 "h"、"l"、"l"、"o" 并将它们存储在一个数组中。
【问题讨论】:
这里太多歧义了,什么是单词,什么是字母等。最好根据实际代码提出问题,而不是代码描述,因为代码描述总是很容易被误解。 @john “单词是什么,字母是什么”你是认真的吗? 是的,例如问题中的字母有双引号,那么 OP 是否需要一个字母的字符串?他们想要什么样的字符串,C 还是 C++? @john 是吗?这就是例子所说的字面意思吗?不确定你吹毛求疵的目的,但我绝对相信它的价值 也许吧,但基于这种假设我不会回答这类问题,而且根本没有指定 C 或 C++ 字符串问题。 【参考方案1】:只需将字符串用作数组即可。在c++
的std::string
中,如果example
等于"Hello world!"
,则example[0]
等于'H'
,example[1]
等于'e'
等等。
如果出于某种原因确实需要将字符串复制到字符数组中,可以使用 string.h
库中的 strcpy
函数。举个例子:
#include <iostream>
#include <string>
int main()
std::string example = "Hello world!";
char arr[example.length()];
strcpy(arr,example.c_str());
for(int i = 0; i < example.length(); i++)
std::cout << arr[i];
return 0;
【讨论】:
可变长度数组在 C++17 之前是非标准的,而且你不需要arr
,因为 std::string
重载了 operator[]
。
@StephenNewell 在 C++17 之前 VLA 是非标准的,这是什么意思?
使用VLA,在C++中是不允许的,using namespace std
omg
为什么需要阵列?您可以像访问数组一样访问std::string
:std::cout << example[i] << "\n";
@Slava - VLA 直到 C++17 才成为标准 C++ 的一部分。【参考方案2】:
它已经是一个数组。 :)
字符串是(或公开为)字符数组,即使隐藏在像std::string
这样的控制类之后。
因此,如果您需要将它与数组下标语法一起使用(例如myString[i]
),那么只需这样做。
【讨论】:
【参考方案3】:我想这会对你有所帮助。
#include<iostream>
#include<string.h>
using namespace std;
int main()
string s="Hello";
for(int i=0;i<s.length();i++)
printf("%c,",s[i]);
【讨论】:
请勿使用using namespace std;
发布答案。您没有使用#include<string.h>
。但是,您使用的是#include <string>
。我建议您添加“使用 std::string;`.以上是关于在c ++中将单词拆分为字母? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
如何在 BigQuery SQL 中将字符串列拆分为多行单个单词和单词对?
如何在 C / Objective-C 中将字符串文字拆分为多行?
如何在Python中将具有名称(1个或多个单词)和数字的单行输入字符串拆分为[“名称”,“数字”]?