ViVi Home > 技術文書 > ポインタ入門 > 基礎演習問題> pop_back


 

 

C/C++ ポインタ入門 > 文字列関数 > pop_back
Nobuhide Tsuda
Nov-2013

文字列末尾の文字を削除:char my_pop_back(char *str)

#include <string.h>        // for strlen
char my_pop_back(char *str)
{
    const int len = strlen(str);
    if( len == 0 ) {
        return '\0';      // str が空文字列の場合は、'\0' を返す
    } else {
        char c = str[len-1];     // 末尾文字を c に代入
        str[len-1] = '\0';       // 終端記号のヌル文字を次の位置に書き込む
        return c;                      // 末尾文字を返す
    }
}

解説:

char my_pop_back(char *str)
{
    if( *str == '\0' ) {       // str が空文字列の場合
        return '\0';              // '\0' を返す
    } else {
        while( *str != '\0' ) {
            ++str;     // str をヌル文字まで進める
        }
        char c = *--str;       // 末尾文字を c に保存
        *str = '\0';              // 末尾文字の場所にヌル文字を上書き
        return c;                  // 保存しておいた末尾文字を返す
    }
}

解説:

 


前: | 次: