#1
by danbo12 » 7年前
大学の課題で 入力させたmain関数内で文字列を入力させそれをmystrlen関数内で長さをはかりgyaku関数内でその長さを受け取り、文字列の順番を逆にしたものを新しい配列にいれ、main関数内で表示するプログラムを作っています。
一通り作ってみて実行してみたのですが
文字列入力:aiueo
フuフiフ
終了するには(ry
とエラー警告のポップアップでvariable 'r' was corrupted
となってしまいます。自分でも調べてみたのですが解決方法がわかりません。
環境はwindowsでVSを使っています。
原因を教えていただけないでしょうか?
以下にコードをはります。
コード:
#include<stdio.h>
int mystrlen(char[]);
void gyaku(char s[], char f[]);
int main(void)
{
char s[100];
char r[100];
printf("文字列入力:");
scanf("%s", &s);
gyaku(s,r);
printf("%s\n",r);
return 0;
}
void gyaku(char s[], char f[]) {
int n,i = 0;
n = mystrlen(s);
for ( i = n - 1; i >= 0; i--) {
f[(n - i) - i] = s[i];
}
f[n] = '\0';
printf("\n");
}
int mystrlen(char s[]) {
int i = 0;
while (s[i] != '\0')
{
i++;
}
return i;
}
大学の課題で 入力させたmain関数内で文字列を入力させそれをmystrlen関数内で長さをはかりgyaku関数内でその長さを受け取り、文字列の順番を逆にしたものを新しい配列にいれ、main関数内で表示するプログラムを作っています。
一通り作ってみて実行してみたのですが
文字列入力:aiueo
フuフiフ
終了するには(ry
とエラー警告のポップアップでvariable 'r' was corrupted
となってしまいます。自分でも調べてみたのですが解決方法がわかりません。
環境はwindowsでVSを使っています。
原因を教えていただけないでしょうか?
以下にコードをはります。
[code]
#include<stdio.h>
int mystrlen(char[]);
void gyaku(char s[], char f[]);
int main(void)
{
char s[100];
char r[100];
printf("文字列入力:");
scanf("%s", &s);
gyaku(s,r);
printf("%s\n",r);
return 0;
}
void gyaku(char s[], char f[]) {
int n,i = 0;
n = mystrlen(s);
for ( i = n - 1; i >= 0; i--) {
f[(n - i) - i] = s[i];
}
f[n] = '\0';
printf("\n");
}
int mystrlen(char s[]) {
int i = 0;
while (s[i] != '\0')
{
i++;
}
return i;
}
[/code]