C言語: 文字列の先頭/末尾の*(アスタリスク)を削除する方法
関数を作成して、文字列の先頭と末尾のアスタリスクを削除する方法は次の通りです。
- removeStarsという関数を定義し、文字列を引数として受け取る設計。
- 最初の星印以外の文字の位置を見つけるために、whileループを使用して文字列を反復処理し、その位置をstartとして記憶します。
- endとして、最初の星号でない文字の位置を見つけるために、文字列を逆順でwhileループを使用して走査します。
- substr関数を使って、startとendの間の部分文字列、つまり先頭と末尾の星号を取り除いた文字列を取得します。
- 首尾のアスタリスクを除去した文字列を返す。
こちらがサンプルコードです。
#include <stdio.h>
#include <string.h>
char* removeStars(char* str) {
int start = 0;
int end = strlen(str) - 1;
while(str[start] == '*') {
start++;
}
while(str[end] == '*') {
end--;
}
return str + start;
}
int main() {
char str[] = "****Hello, World!****";
char* result = removeStars(str);
printf("Result: %s\n", result);
return 0;
}
上記の例では、removeStars関数は、文字列strから先頭と末尾のアスタリスクを削除し、削除されたアスタリスクのない文字列を返します。