gpt4 book ai didi

c++ - 如何从链表中的字符串中获取第一个字母?

转载 作者:行者123 更新时间:2023-11-28 01:41:03 25 4
gpt4 key购买 nike

我试图通过 substr(0,1) 获取名称(字符串类型)的第一个字母.但是,我想要一个指向它的指针,在一个链表中。

所以我这样写:h->name.substr(0,1)其中 (h) 是指针,(name) 是结构中的字符串类型。

struct empType{
string name;
empType *next;
};

但是当我打印 h->name.substr(0,1) , 它出现 (NULL)。

假设链表存在,(h)是指向第一个节点的指针。

最佳答案

要获取(对 a 的引用)第一个字符,请使用 std::basic_string::front成员函数:

h->name.front();

std::basic_string::at值为 0:

h->name.at(0);

std::basic_string::operator[]索引为 0 的运算符:

h->name[0];

或取消引用 std::basic_string::data指针:

*h->name.data();

或取消引用 std::basic_string::begin迭代器:

*h->name.begin();

包含您的结构的简单示例:

#include <iostream>
#include <string>
struct empType{
std::string name;
empType *next;
};

int main() {
empType* h = new empType;
h->name = "Hello World";
h->next = nullptr;
std::cout << h->name.front();
std::cout << h->name.at(0);
std::cout << h->name[0];
std::cout << *h->name.data();
std::cout << *h->name.begin();
delete h;
}

关于c++ - 如何从链表中的字符串中获取第一个字母?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47139032/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com