Ни один из них не является правильным.
Функция-член sub
не существует для строки, если вы не используете другой класс string
, который не std::string
.
Второй из первого вопроса subString = &anotherString.sub(9);
небезопасен, так как вы храните временный адрес. Это также неправильно, поскольку anotherString
является указателем на строковый объект. Чтобы вызвать функцию-член sub
, необходимо написать anotherString->sub(9)
. И снова, функция-член sub
не существует.
Первый из второго вопроса более правильный, чем второй; все, что вам нужно сделать, это заменить "\""
на '\"'
.
Второй из второго вопроса не так, как:
doubleQuote
относится не к 10-му символу, а к строке, начиная с 10-го символа
doubleQuote == "\""
может быть правильным по типу, но не сравнивает равенство двух строк; он проверяет, указывают ли они на одно и то же. Если вы хотите проверить равенство двух строк, используйте strcmp .