void my_strrev(char *str)
{
int len = strlen(str);
char *ptr = str + len; // 末尾を指すポインタを用意
for(int i = 0; i < len/2; ++i) { // len の半分の回数ループ
char t = *--ptr;
*ptr = *str; // *str++, *--ptr を交換
*str++ = t;
}
}
解説:
void my_strrev(char *str)
{
int len = strlen(str);
for(int i = 0; i < len/2; ++i) { // len の半分の回数ループ
char t = str[i];
str[i] = str[len - 1 - i]; // str[i] , str[len - 1 - i] を交換
str[len - 1 - i] = t;
}
}
解説:
void my_strrev(char *str)
{
int len = strlen(str);
for(int i = 0; i < len/2; ++i) { // len の半分の回数ループ
std::swap(str[i], str[len - 1 - i]); // str[i] , str[len - 1 - i] を交換
}
}
前: | 次: