どうしてもポインタが理解できないです。挫折しそうです。
今回はポインタを使って文字列の長さを求めるコードですが。どうしても与えられた文字をカウントせずに1が表れてしまいます。
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> int change_letter(char* ptr) { int i=0; i = i + 1; return i; } void main() { char buffer[128]; char* ptr = buffer; int i=0; scanf("%s", buffer); printf("%s\n", ptr); while (*ptr != 0) { i= change_letter(ptr); ptr++; } printf("%d\n", i); }
自分のコードだと、与えられた文字列を使ってwhile文で次の配列とカウントするようにしていますが。ブレークポイントを用いると関数から受け取った後、整数としてではなく、あり得ない数字が渡り、そのまま1とループしている状態であります。
どうかご協力を願います。
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2020/05/22 08:47
2020/05/22 09:45
2020/05/22 09:49 編集
退会済みユーザー
2020/05/22 10:11
2020/05/22 10:18
退会済みユーザー
2020/05/22 10:30