2つの文字列を連結する関数を作成する必要がありますが、最初の単語の後に '\ n'を追加する必要があります。私はすべてを考え出して何らかの理由で何も印刷しません。何か案は?おそらくポインタで何かをしなければならないでしょう。私はちょうどそれらの周りに私の頭を得ることができません。ここにコードがあります。関数は結果を出力していません
char *function(char *s1, char *s2){
char *newStr;
int size;
size = strlen(s1) + strlen(s2);
newStr = (char *)malloc((size+1)*sizeof(char));
while(*s1!= '\0'){
*newStr = *s1;
newStr++;
s1++;
}
*newStr = '\n';
newStr++;
while(*s2 != '\0'){
*newStr = *s2;
newStr++;
s2++;
}
*newStr = '\0';
return newStr;
}
int main (int argc, const char * argv[]) {
char *str1 = "Hello";
char *str2 = "World";
printf("%s",function(str1, str2));
return 0;
}
だから、結果として私が取得する必要があります。
Hello
World
が、私は何も戻ってきませんよ。
、私は言っ結果= * pで警告を受ける「代入はキャストせずにポインタから整数を作る。」
..あなたが理解ホープ – captain
いいえ、うまくいきます。ミスコピーが必要です。例:http://ideone.com/jQhMj –