在 C++ 中使用指针算法
In c++ using pointer arithmetic
当您不知道数组有多大时,如何显示字符数组中的最后一个字符?
array *('\0' - 1) 会工作吗?
如果一个字符数组包含一个 C 风格的字符串,即它包含一个空终止符,那么您可以应用标准的 C 函数 strlen()
,像这样:
char s[] = "Hello";
//...
size_t n = strlen( s );
if ( n != 0 ) std::cout << s[n-1] << '\n';
否则,你可以这样写一个模板函数:
template <size_t N>
char last_char( const char ( &s )[N] )
{
return s[N-1];
}
并这样称呼它:
char s[] = { 'H', 'e', 'l', 'l', 'o' };
std::cout << last_char( s ) << '\n';
当您不知道数组有多大时,如何显示字符数组中的最后一个字符? array *('\0' - 1) 会工作吗?
如果一个字符数组包含一个 C 风格的字符串,即它包含一个空终止符,那么您可以应用标准的 C 函数 strlen()
,像这样:
char s[] = "Hello";
//...
size_t n = strlen( s );
if ( n != 0 ) std::cout << s[n-1] << '\n';
否则,你可以这样写一个模板函数:
template <size_t N>
char last_char( const char ( &s )[N] )
{
return s[N-1];
}
并这样称呼它:
char s[] = { 'H', 'e', 'l', 'l', 'o' };
std::cout << last_char( s ) << '\n';