アプリ版:「スタンプのみでお礼する」機能のリリースについて

a : ABCDE
a : ABCDEFGH
Len : 8
a : FGHIJ
a : FGH
a : FGH, c : FGH
上記のように表示されるプログラムを作りたいのですが、なかなかできません。下記のようなプログラムを作ったのですがどこが間違っているのかよくわかりません。分かる方、指摘をお願いします。
#include <stdio.h>

void my_strcpy(char s[], char t[]);
int my_strlen(char s[]);
void my_strcat(char s[], char t[]);

int main(){
char a[10];
char b[10] = "ABCDE";
char c[] = "FGH";
int len;

my_strcpy(a, b);
printf("a : %s\n", a);

my_strcat(a, c);
printf("a : %s\n", a);

len = my_strlen(a);
printf("Len : %d\n", len);

my_strcpy(a, "FGHIJ");
printf("a : %s\n", a);

a[3] = '\0';
printf("a : %s\n", a);

if(strcmp(a, c) == 0){
printf("a : %s, c : %s\n", a, c);
}

int i, s, t;
my_strcpy(a, b + 2);
printf("a : %s\n", a);

void my_strcpy(char s[], char t[]){
for (i = 0; t[i] != '\0'; i++){
s[i] = t[i];
}
s[i] = '\0';
}

int my_strlen(char s[]){
int i;
for (i = 0; s[i] != '\0'; i++);
return i;
}
void my_strcat(char s[], char t[]){
int i, j;
for (i = 0; s[i] != '\0'; i++);
for (j = 0; t[j] != '\0'; i++, j++){
s[i] = t[j];
}
s[i] = '\0';
}

}

A 回答 (1件)

コピペしてコンパイルしてみましたが、


エラーメッセージからはわかりにくい問題のようですね。

問題は、main()の括弧閉じ「}」の位置が不適切です。
現在は最後に「}」がありますが、これは本来my_strcpy()の定義の前に
なければなりません。
my_strcpy(), my_strlen(), my_strcat()は独立した関数なので、
main()の定義の外に出さないといけないわけです。

あとmy_strcpy()でint iの宣言が抜けてるようですが、
これはコンパイルエラーからすぐわかるので
たいした問題ではないでしょう。
    • good
    • 0
この回答へのお礼

指摘、ありがとうございました。
とてもわかりやすかったです。

お礼日時:2008/09/05 01:29

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!