在一组c ++中访问字符串的第一个字母

use*_*053 2 c++ string iterator set

我有一组字符串,我需要访问每个字符串,并将字符串的第一个字母与一个char进行比较,如果它们相同则停止。我该如何处理?我尝试过

char* p;

for (std::set<string>::iterator iter=myset.begin(); iter!=myset.end();iter++)
    {p = *iter;
    if (p==characterForComparison) return 0;
    }
Run Code Online (Sandbox Code Playgroud)

但这并没有通过编译器,它说

error C2440: '=' : cannot convert from 'std::basic_string<_Elem,_Traits,_Ax>' to 'char *'
Run Code Online (Sandbox Code Playgroud)

我该如何解决?我需要的非常简单,因此我需要一个尽可能简单的解决方案,只需遍历所有字符串,比较第一个字母,如果相同,则返回0;否则,返回0。

bil*_*llz 5

要比较std::stringjust do的第一个字符:

if (!(*iter).empty() && 
    (*iter)[0] == characterForComparison)
{
}
Run Code Online (Sandbox Code Playgroud)

要访问第一个元素的字符串,字符串提供operator[]front()或使用begin以获得参照第一要素。参见std :: string页面。