ソースコードを提示する際は、BBCodeが有効な(無効にしない)状態で、
BBCodeのcodeタグの開始タグと終了タグの組(開始タグが先)で囲んでいただけると、
見やすくてありがたいです。
みうけい さんが書きました:文字列の反転をポインタを使わずに関数で行いたいのですが、どうすればいいでしょうか。
C言語では、文字列の処理には必ずポインタが使われます。
(式中で[]演算子(配列添字演算子)に渡された配列はポインタに変換されて処理されます)
したがって、文字列の反転をC言語でポインタを使わずに行うのは無理なので、諦めるか別の言語を使用するといいでしょう。
オフトピック
そもそもC言語を使うとは一言も書かれていませんが…
みうけい さんが書きました:下のようにやるとうまくいきません
- 書き換えたいデータへのポインタにconstを付けない
- 無駄に配列の範囲外にアクセスしない
という修正を行うと、「ポインタを使わずに」という条件は満たしませんが動くようです。
コード:
void rev_string(char s[])
{
int i=0,j=0;
char a;
while(s[i++])j++;
for(i=0;i<j/2;i++){
a=s[i];
s[i]=s[j-i-1];
s[j-i-1]=a;
}
}