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

How to get the first letter from a string in a linked list?

本文关键字:获取 第一个 字符串 链表      更新时间:2023-10-16

我试图通过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);

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

h->name[0];

或取消引用 std::basic_string::d ata 指针:

*h->name.data();

或取消引用 std::basic_string::开始迭代器:

*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;
}