gpt4 book ai didi

c++ - 如何在C++中使用字符串和字符串指针

转载 作者:太空宇宙 更新时间:2023-11-04 15:28:40 24 4
gpt4 key购买 nike

在C++中什么时候用字符串(char),什么时候用字符串指针(char pointers),我很困惑。这是我有两个问题。以下哪一项是正确的?

string subString;
subString = anotherString.sub(9);

string *subString;
subString = &anotherString.sub(9);

以下哪一项是正确的?

char doubleQuote = aString[9];
if (doubleQuote == "\"") {...}

char *doubleQuote = &aString[9];
if (doubleQuote == "\"") {...}

最佳答案

没有一个是正确的。

string 不存在成员函数 sub,除非您使用的不是 std::string 的另一个 string 类。

第一个问题的第二个 subString = &anotherString.sub(9); 不安全,因为您正在存储临时地址。这也是错误的,因为 anotherString 是一个指向字符串对象的指针。要调用sub成员函数,需要编写anotherString->sub(9)。同样,成员函数 sub 不存在。

第二题第一个比第二个正确;您需要做的就是将 "\"" 替换为 '\"'

第二题第二题错误,如:

  1. doubleQuote 不是指第10个字符,而是指从第10个字符开始的字符串
  2. doubleQuote == "\"" 可能在类型方面是正确的,但它不会比较两个字符串的相等性;它会检查它们是否指向同一事物。如果你想要要检查两个字符串是否相等,请使用 strcmp

关于c++ - 如何在C++中使用字符串和字符串指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1551106/

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