文字列
code:c
int main(void){
int a=0;
char b[] ="NUM";
printf("%s:%lu\n",b,sizeof(b));
sizenum(b,a);
return 0;
}
void sizenum(char *text,int num){
printf("%s:%lu\n",text,sizeof(num));
}
文字列の置き換え
code:c
int main(void){
// 自分の得意な言語で
// Let's チャレンジ!!
char str1000 = {"test "}; int res = strcmp(str,"test ");
//お客さんの重複確認
if(res==0){
printf("test\n");
}
if(res == 0){
for(int i=0;i<3;i++){
}
}
return 0;
}
code:c
int main(void){
// 自分の得意な言語で
// Let's チャレンジ!!
const char str210001000 = {"Az","Bend","Ced"}; for(int i=0;i<3;i++){
strcpy(str3i, str2i); ///< str2をstr3にコピー strcat(str3i," test"); ///< 文字列(test)を足す。 }
return 0;
}
最後の文字:\nを抜く
code:c
int main() {
char str[] = "Hello, World!\n";
int len = strlen(str);
}
printf("Modified string: %s\n", str);
return 0;
}
文字列の最後尾の位置を特定する方法
改行文字を削除するためには、まず文字列の最後尾の位置を特定する必要があります。これは、文字列の長さを求め、その長さから1を引くことで実現できます。
このプログラムでは、まずstrlen関数を使用して文字列の長さを求めます。次に、文字列の最後尾の文字が改行文字である場合に、その文字をヌル文字('\0')に置き換えます。最後に、変更後の文字列を表示します。
文字列の長さが分からない場合
code:c
int main() {
char str[] = "Hello, World!\n";
char *p = strrchr(str, '\n');
if (p != NULL) {
*p = '\0';
}
printf("Modified string: %s\n", str);
return 0;
}
文字列の最後尾の位置を特定する方法では、文字列の長さを求める必要があるため、文字列の長さが分からない場合には使えません。そのため、文字列の末尾から逆方向に検索して、最初に見つかった改行文字を削除する方法があります。
このプログラムでは、strrchr関数を使用して改行文字が最後に現れる位置を取得します。取得した位置がNULLでない場合、その位置の文字をヌル文字に置き換えます。最後に、変更後の文字列を表示します。
いずれの方法も、文字列の末尾から改行文字を削除することができます。どちらの方法を選択するかは、プログラムの要件に合わせて適切に決定してください。
文字列のコピー
code:c
int main() {
char src[] = "Hello, World!";
strcpy(dest, src);
printf("元の文字列: %s\n", src);
printf("コピーされた文字列: %s\n", dest);
return 0;
}
このプログラムでは、最初に「src」という文字列配列に「Hello, World!」という文字列を設定し、次に「dest」という文字列配列にsrcの文字列をコピーします。strcpy関数が実行されると、「dest」配列に「Hello, World!」という文字列がコピーされます。最後に、元の文字列とコピーされた文字列を表示します。
strcpy関数は、文字列がコピー先の配列よりも大きい場合、オーバーフローが発生してプログラムがクラッシュする可能性があることに注意してください。安全な文字列コピーを行う場合は、strncpy関数を使用することが推奨されています。
文字列のコピーには、C言語の標準ライブラリに含まれるstrcpy関数を使用します。strcpy関数は、1つ目の引数で指定された文字列に、2つ目の引数で指定された文字列をコピーします。以下は、strcpy関数を使用して文字列のコピーを行う例です。
指定された文字列の中で、指定されたサブ文字列が最初に出現する位置を検索する
code:c
char *strstr(const char *str1, const char *str2);
str1: 検索する文字列
str2: 検索対象のサブ文字列
strstr関数は、str1の中で最初にstr2が見つかった場合、その場所を指すポインタを返します。見つからなかった場合は、NULLを返します。
以下は、strstr関数を使用してサブ文字列が見つかる場合と見つからない場合の例です。
code:c
int main() {
char str1[] = "Hello, World!";
char str2[] = "World";
char *result;
result = strstr(str1, str2);
if (result != NULL) {
printf("サブ文字列が見つかりました:%s\n", result);
} else {
printf("サブ文字列が見つかりませんでした。\n");
}
return 0;
}
このプログラムでは、文字列「Hello, World!」の中でサブ文字列「World」を検索します。strstr関数が「World」を見つけた場合、ポインタを返して、その後に出現する文字列を表示します。サブ文字列が見つからない場合、NULLを返すため、「サブ文字列が見つかりませんでした。」と表示します。