質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

Q&A

解決済

2回答

693閲覧

strcpy,strcatの使い方

111112222211111

総合スコア4

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

0グッド

0クリップ

投稿2020/06/09 12:04

編集2020/06/09 13:42

下から6行目、7行目辺りのstrcpy,strcatの中身の考え方を教えていただきたいです。
表示結果は、

文字列1:
文字列2:
"zに%s+%s+1文字分のメモリを割り当てます。
文字列1+文字列2/連結させる/

と表示されるようにしたいです。

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

int main(void)
{
int i,num1,num2;
char x[101],y[101],z;
printf("文字列1:");
scanf("%s",x);
printf("文字列2:");
scanf("%s",y);
num1 = strlen(x);
num2 = strlen(y);
/xとyの文字列を連結して格納するのに必要十分なバイト数のメモリをzに割り当てる↓/
printf("zに%s+%s+1文字分のメモリを割り当てます。\n",num1,num2);
z = (char
) malloc (sizeof(char)*(num1+num2+1));
if(!z){
printf("メモリを確保できませんでした\n");
return 1;
}
z[0] = '\0';
strcpy();/文字列をコピーする関数の呼び出し(引数のうちいずれかをxとする)/
strcat();/文字列を連結する関数の呼び出し(引数のうちいずれかをyとする)/
printf("%s\n",z);
free(z);
return 0;
}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

111112222211111

2020/06/09 14:08

できました!ありがとうございました^^*
guest

回答2

0

ベストアンサー

エィヤッと、見直し。

printf("zに%d+%d+1文字分のメモリを割り当てます。\n",num1,num2);
z = (char*) malloc (sizeof(char)*(num1+num2+1));
strcpy(z, x);/文字列をコピーする関数の呼び出し(引数のうちいずれかをxとする)/
strcat(z, y);/文字列を連結する関数の呼び出し(引数のうちいずれかをyとする)/

こんなところ? strcpy(), strcat() 辺りは、検索すると一杯出てきます。(あやしいのもあるけど)

[追記]
VS2019 のコンパイラでエラー/警告を直しただけ。細かなエラーチェックまでみてません。注意を。

投稿2020/06/09 13:33

編集2020/06/09 13:36
pepperleaf

総合スコア6385

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

111112222211111

2020/06/09 13:45

ありがとうございます(T_T) iが元から定義されているのですが、1度も使っていなくて、、どこで使えますか…?
pepperleaf

2020/06/09 22:59

> iが元から定義 それは作った人にしか分かりません。
guest

0

z = (char*) mallco (sizeof(char)*(num1+num2+1));

スペル間違ってるんで、きちんと修正し、コンパイルがきちんと通った状態になったらまた聞きに来ましょう

投稿2020/06/09 13:24

y_waiwai

総合スコア88042

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

111112222211111

2020/06/09 13:44

気づきませんでした!ありがとうございます、、直しました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問