2016-08-17 18 views
-4

Cで2つの文字列を追加するには?Cプログラミング言語で2つの文字列を追加するには?

は、私がこれまで作ってきた私のプログラムを見てください。

#include <stdio.h> 
int main() 
{ 
    char samrat[10]="*"; 
    char string[1]="*"; 
    samrat=samrat+string; 
} 
+1

あなたは 'strcatのを()'てみたのですか? – Shark

+0

@deamentiaemundi:いいえ。あんまり。 https://www.google.com/search?q=c+add+strings – SLaks

+0

@SLaks自分をReseaching? Googleにも尋ねる?いいえ、*それはあまりにも大したことです! ;-)しかし、深刻な:それはすべてのポスターは、英語では非常に流暢であると私は、「第三または第四の」言語とはかなり深刻だったと思い、ここでそれらのユーザーのために少しスティンガーとしてのものでした。より多くの患者、pleeease! – deamentiaemundi

答えて

3

使用ヘッダ<string.h>で宣言された標準C関数strcat。例えば、

#include <string.h> 

//... 

strcat(samrat, string); 

これらの2つの文字列の連結を含む新しい文字列を動的に作成することです。たとえば、あなたの文

samrat=samrat+string; 

については

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

//... 

char *s = malloc(strlen(samrat) + strlen(string) + 1); 

if (s != NULL) 
{ 
    strcpy(s, samrat); 
    strcat(s, string); 
} 

//... 

free(s); 

は、配列指定子は、式の中で彼らの最初の要素へのポインタに(まれな例外を除いて)に変換されます。したがって、2つのポインタを追加しようとしています。ポインタのこの操作はCでは定義されていません。さらに、配列は変更不可能な左辺値です。配列に式を割り当てることはできません。

+1

おそらく、両方の文字列の長さに等しい新しいバッファを/ mallocに割り当てることをお勧めしますか? – Shark

1

samrat + stringは無意味な結果で、タイプchar*の二つのポインタを一緒に追加しようとします。

使用strcatは、2つの文字列を連結しますstrcat(samrat, string);samratバッファが結果に対応するのに十分な大きさであることを確認することを忘れないでください。

関連する問題