C言語のポインタで以下の問題が分からなかったので、質問させていただきます。
char *pの宣言で、なぜ引数の文字列に文字列の長さを足して-1をしているのですか?
配列argv[1]には、This is a dogが格納されているという解釈でよろしいのでしょうか。
問題
引数で与えられた文章を逆順に出力するプログラムを作成。
引数が空白を含む場合は、文章全体を””で囲んでプログラムへ与える。
実行例
./a.out "This is a dog."
This is a dog.
#include <stdio.h> #include <string.h> int main(int argc,char *argv[]){ if(argc < 2){ return 1; } char *p = argv[1] + strlen(argv[1]) - 1; while(p >= argv[1]){ printf("%c", *p); p--; } puts(""); }
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。