文字列の長さの代わりに使用strlen()
し、文字を出力したい ( %c
):
int i = 0;
for (i = 0;i < strlen(myString);i++){ // to get a string's length, use strlen
printf("%c\n", myString[i]); // to print a single character, use %c
}
strlen()
over をsizeof()
使用する理由 まあ、この特定の例では、違いはありません。ただしstrlen()
、文字列内の印刷可能な文字数を提供するためsizeof
のものですが、配列のサイズを返します (印刷可能な文字 + null ターミネータの場合は 1)。
int len1 = sizeof(myString); // 15
int len2 = strlen(myString); // 14
A) 表示されないので役に立たない
B) 文字列を使用する習慣を身につけsizeof
たら、配列を渡す関数内で使用することができます (この場合、配列はポインターに減衰します) ) するとchar *
、文字数ではなくa のサイズが返されます。行った場合、同じ関数内で同じことが適用されますchar *myString = "Amazing String";