Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/146.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 找到字符串的第一个字符,然后将其与符号c++;_C++ - Fatal编程技术网

C++ 找到字符串的第一个字符,然后将其与符号c++;

C++ 找到字符串的第一个字符,然后将其与符号c++;,c++,C++,正在尝试检查字符串的第一个字符是否包含“/” 我理解上面的代码将不起作用,因为pathname.at(0)被视为int 我相信这是以前问过的。但是我已经到处看看了。我见过substr方法find方法和许多其他方法。但我似乎无法让它们正常工作 建议?提前感谢。使用单引号表示字符常量 if(pathname.at(0) == '/') ^ ^ 双引号,不管里面有多少个字符,都表示一个C样式的字符串。无法将字符与C字符串进行比较。将第一个符号代码与字符串指针

正在尝试检查字符串的第一个字符是否包含“/”

我理解上面的代码将不起作用,因为pathname.at(0)被视为int

我相信这是以前问过的。但是我已经到处看看了。我见过substr方法find方法和许多其他方法。但我似乎无法让它们正常工作


建议?提前感谢。

使用单引号表示字符常量

if(pathname.at(0) == '/')
                     ^ ^

双引号,不管里面有多少个字符,都表示一个C样式的字符串。无法将字符与C字符串进行比较。

将第一个符号代码与字符串指针进行比较。尝试将第一个符号与字符进行比较

if(pathname.at(0) == '/')

std::string::at()
返回(对a的引用)
char
,而不是
int
“/”
是以null结尾的字符串,而不是
字符。将
“/”
更改为
“/”
,则代码将正常工作。另外,
std::string::erase()
被重载以获取索引或迭代器,因此您可以选择将
pathname.erase(pathname.begin()+0)
更改为仅
pathname.erase(0)
。您是对的。这样会更有效率。非常感谢。
if(pathname.at(0) == '/')