文字列を入力し入力した文字列を逆にする関数とは? – プログラミング – Home

文字列を入力し入力した文字列を逆にする...
 
通知
すべてクリア

[解決済] 文字列を入力し入力した文字列を逆にする関数とは?


ゆうき
 ゆうき
(@ゆうき)
ゲスト
結合: 22年前
投稿: 10
Topic starter  

#include <stdio.h>
#include <string.h>

void gyakumoji(int mojiretu)
{
int i, n, z;
int seimoji[100];

do{
scanf(%d, &seimoji[n]);
n++;
}
while(seimoji[n] != '\n');

z = strlen(n);

for(i = 0;i < n;i++)
mojiretu[i] = seimoji[n - i];

return (0);
}

int main(void)
{
printf(文字列を入力してください。\n);

return (0);
}
mojiretu[i] = seimoji[n - i];の文に
1、配列または、ポインタでない変数に添字が使われました。
2、'=' : 左のオペランドが、左辺値になっていません。
というエラーが出ます。
どうぞご指摘お願いします。


引用未解決
トピックタグ
sugar
 sugar
(@sugar)
ゲスト
結合: 24年前
投稿: 448
 

「mojiretu」はint型の変数ですよね?
mojiretu[i]にはなりえないわけですが…


返信引用
ゆうき
 ゆうき
(@ゆうき)
ゲスト
結合: 22年前
投稿: 10
Topic starter  

mojiretuはただの変数で配列ではないんですか?


返信引用
επιστημη
 επιστημη
(@επιστημη)
ゲスト
結合: 22年前
投稿: 1301
 

はぁ?

void gyakumoji(int mojiretu)
^^^^^^^^^^^^
mojiretu はただの int でしょ?


返信引用
silver fox
 silver fox
(@silver fox)
ゲスト
結合: 22年前
投稿: 10
 

まぁそれが解決してもまだまだ問題は山積みのような・・・

> int i, n, z;
> int seimoji[100];

> do{
> scanf(%d, &seimoji[n]);
> n++;
> }
> while(seimoji[n] != '\n');

このwhileからどうやって抜けるやら。

> z = strlen(n);

このnは何であるやらと。


返信引用
wood
 wood
(@wood)
ゲスト
結合: 23年前
投稿: 895
 

http://rararahp.cool.ne.jp/cgi-bin/lng/vc/vclng.cgi?print+200301/03010007.txt
この人と一緒ですか?


返信引用
επιστημη
 επιστημη
(@επιστημη)
ゲスト
結合: 22年前
投稿: 1301
 

ご参考: C++版

#include <iostream>
#include <string>
#include <algorithm>

using namespace std;

int main() {
string line;
cout << input :;
getline(cin, line);
reverse(line.begin(), line.end());
cout << result: << line << endl;
return 0;
}

----- 実行結果 -----
input :Hello, world
result:dlrow ,olleH


返信引用
ゆうき
 ゆうき
(@ゆうき)
ゲスト
結合: 22年前
投稿: 10
Topic starter  

#include <stdio.h>
#include <string.h>

char *gyakumoji(char mojiretu[])
{
static char seimoji[80];
int i, n;
n = strlen(mojiretu);
for(i = 0;i < n;i++)
mojiretu[i] = mojiretu[n - i - 1];
mojiretu[n] = '\0';
return (mojiretu);
}

int main(void)
{
char z[80];
printf(文字列を入力してください。\n);
scanf(%s, z);
printf(%s\n, gyakumoji(z));
}
このプログラムでは実行したときに
yamaguchi
ihcuguchi
とちゃんと逆にしてくれません。どうしてでしょうか?


返信引用
silver fox
 silver fox
(@silver fox)
ゲスト
結合: 22年前
投稿: 10
 

> for(i = 0;i < n;i++)
> mojiretu[i] = mojiretu[n - i - 1];

> とちゃんと逆にしてくれません。どうしてでしょうか?

最初の i が 0 の時の処理だけでも自分で分かりませんか?

 mojiretu[0]にいきなり代入されては、もともとmojiretu[0]に有ったデータはデータはどう
なるのでしょう?


返信引用
επιστημη
 επιστημη
(@επιστημη)
ゲスト
結合: 22年前
投稿: 1301
 

.../03010007.txt の最後のヒントを読んで
くれなかったのかなぁ。しくしく。


返信引用
ゆうき
 ゆうき
(@ゆうき)
ゲスト
結合: 22年前
投稿: 10
Topic starter  

解決しました。ありがとうございました。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました