文字の配列の要素を取得したいのですが、まったく成功しません。問題は、最初と最後の要素のみを取得し、それ以上のものを取得しないことです。私のコードは次のとおりです。
void getcharacters(char *cad)
{
int l;
int *i;
l=strlen(cad);
for (i=&cad[0];i<&cad[l];i++){
printf("%c\n",*cad);
}
}
助けはありますか?ありがとう
文字の配列の要素を取得したいのですが、まったく成功しません。問題は、最初と最後の要素のみを取得し、それ以上のものを取得しないことです。私のコードは次のとおりです。
void getcharacters(char *cad)
{
int l;
int *i;
l=strlen(cad);
for (i=&cad[0];i<&cad[l];i++){
printf("%c\n",*cad);
}
}
助けはありますか?ありがとう
an のサイズint
は、 a のサイズの 4 倍の大きさになる可能性があるchar
ため、i++
実際には 3 文字をスキップしていることになります。
*cad
また、代わりに印刷します*i
。
i
変更を修正して代わりにchar*
印刷するには*i
*cad
すべての printfに同じ文字 (*cad
または) を使用しています。cad[0]
必要なのは、インデックスを使用して、各反復で次の文字を取得することです。また、私はcharへのポインタである必要があります:
void getcharacters(char *cad)
{
int l;
char *i;
l=strlen(cad);
for (i=&cad[0];i<&cad[l];i++){
printf("%c\n", *i );
}
}
最初の文字から最後の文字まで繰り返し、配列インデックスとしてアクセスしてみませんか
int i;
int l=strlen(cad);
for (i=0;i<l;i++)
{
printf("%c\n",cad[i]);
}
他の答えは、なぜそれがうまくいかないのかを教えてくれました.nullターミネータまで繰り返していないのはなぜですか?
void getcharacters(char *cad)
{
char *i;
for (i = cad; *i; i++) {
printf("%c\n",*i);
}
}