strlen()
とstrrev()
機能を使用せずに文字列を逆順にするプログラムです。このコードに関して私を助けてください:length
の機能は11
を示しますが、reverse
の機能は機能しません。なぜこの文字列逆プログラムは機能しませんか?
#include <stdio.h>
#include <conio.h>
int length(char*);
char *reverse(char*);
main() {
printf("%d", length("himanshupal"));
printf("%s", reverse("himanshupal"));
getch();
}
/* used to calculate the lenghth*/
int length(char *p) {
int l;
for (l = 0; *(p+l) != '\0'; l++);
return (l);
}
char *reverse(char *p) { // function for reversing the string
// l used for length
int i, l;
char t;
for (l = 0; *(p+l) != '\0'; l++);
for (i = 0; i < l/2; i++) {
t = *(p+i);
*(p+i) = *(p+l-1-i);
*(p+l-1-i) = t;
}
return (p);
}
のような機能長を宣言するために優れていることを考慮してください?ビルドエラーが出ますか?その後、あなたが得る正確なエラーを投稿してください。あなたはクラッシュしますか?その後、デバッガを実行してデバッガの発生場所を特定します。予期しない結果が出ますか?次に、実際の出力と期待される出力を表示してください。また、[良い質問をする方法について読む](http://stackoverflow.com/help/how-to-ask)をご覧ください。 –
文字列リテラルの型は 'const char *'です。とにかくあなたのプログラムがコンパイルされるのは、すべてのCプログラマがハード・ウェイを学ばなければならない悲劇です。 –
私はlength.exeでプログラムを保存します。実行中の長さ関数の後に11.が表示されますが、緑色の行がポップアップしていてlength.exeが正しく実行されていないことを示しています –