ID非公開さん
2022/1/24 22:30
2回答
文字列sの最初のn文字を文字列tの後ろにコピーする関するmystrncat(s,t,n)をポインタを用いて作成せよ(添字演算子なしで作成せよ).指定した文字数nが,
文字列sの最初のn文字を文字列tの後ろにコピーする関するmystrncat(s,t,n)をポインタを用いて作成せよ(添字演算子なしで作成せよ).指定した文字数nが, 文字列tの文字数を超える場合は文字列sの後ろに文字列tをコピーするようにすること.関数を実行するためのmain関数も作成すること. どなたかこの問題の模擬回答を教えていただけませんか? 実行結果例 1: 文字列 t:le3f755s-o!kupp 文字列 s:abcdefg 文字数 n: 3 実行結果:le3f755s-o!kuppabc 文字列 t:le3f755s-o!kupp 文字列 s:abcd 文字数 n: 7 実行結果:le3f755s-o!kuppabcd
C言語関連・71閲覧
ベストアンサー
質問取り消されましたけど私の解答を見れば変数を入れ替えただけで済むことぐらい分かったはずです。大学の課題かもしれませんがそれぐらい判断できずにここで再度答えを聞いて提出しているだけならあとあと困るのはあなたですよ。 一応解答を載せておきます。 #include <stdio.h> #include <string.h> #include <stdlib.h> char* tmp = (char*)malloc(256); void mystrncat(char *t , char* s , int n){ char* b = t; int i; while(*t) ++t; for( i = 0 ; i < n ; ++i , ++t , ++s){ *t = *s; } *t = '\0'; t = b; } int main(void){ char* s =(char*)malloc(256); char* t =(char*)malloc(256); int n; printf("文字列tを入力> "); scanf("%s", t); printf("文字列sを入力> "); scanf("%s" , s); printf("sの頭から何文字をtの最後尾にコピーしますか> "); scanf("%d" , &n); mystrncat( t , s , n); printf("求める文字列は%sです。\n" , t); free(s); free(t); free(tmp); return 0; }
1人がナイス!しています
ID非公開さん
質問者2022/1/25 0:19