[C言語]文字列の先頭の文字を削除するには?

C言語

どうも、ちょげ(@chogetarou)です。

文字列(string)の最初の文字を削除する方法を紹介します。

スポンサーリンク

方法

文字列(string)の先頭の文字を削除する方法は、2つあります。

memmove()

ひとつは、memmove()を使う方法です。

まず、memmove()を呼び出します。

memmove()の第1引数に対象の文字列、第2引数に対象の文字列に「+1」した値、第3引数に文字列の文字数を指定します。

//text=対象の文字列
memmove(text, text + 1, strlen(text));

上記のmemmove()は、文字列の先頭の文字を削除します。

使用例

#include <stdio.h>
#include <string.h>

int main(void){
    char text[] = "Hello,World";
    
    memmove(text, text + 1, strlen(text));
    
    printf("%s", text);
    
    return 0;
}
出力:
ello,World

ポインタ

もうひとつは、ポインタを使う方法です。

具体的な方法としては、「char *result = text + 1;」のように、ポインタに「対象の文字列に1を足した値」を代入します。

//text=対象の文字列
char *result = text + 1;

上記の代入は、ポインタに文字列の先頭の文字を削除した結果を格納します。

使用例

#include <stdio.h>
#include <string.h>

int main(void){
    char text[] = "Hello,World";
    
    char *result = text + 1;
    
    printf("%s", result);
    
    return 0;
}
出力:
ello,World

まとめ

文字列(string)の先頭の文字を削除する方法は、次の2つです。

  • memmove()を使う方法
    memmove(text, text + 1, strlen(text));
  • ポインタを使う方法
    char *result = text + 1;

コメント

タイトルとURLをコピーしました