どうも、ちょげ(@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;
コメント