あなたがしようとしている方法で文字列を追加できないことは正しいです。それはCではうまくいきません。しかし、このエラー:
error: void value not ignored as it ought to be
その問題とは何の関係もありません。これは、何も返さない関数からの戻り値を使用しようとしているためです。
void mark(char arr[],int s[][50],int i,int j) //void means it returns nothing
arr = "("+mark(arr,s,i,s[i][j])+ // This says store into arr "(" + nothing
コンパイラはそのステートメントをどう処理するかを認識していないため、上記のエラーをスローします。その問題を修正すると (mark() にリターンを追加するか、それを修正するためにやりたいことは何でも)、次のようなエラーが発生します。
error C2110: '+' : cannot add two pointers
また:
error: invalid operands to binary + (have ‘char *’ and ‘char *’)
またはコンパイラに応じてそのようなもの。これは、あなたが述べたように、C ではそのような文字列を追加できないためです。文字列を連結するには、strcat を使用する必要があります。
char str_one[1024] = "hello"; //something big enough for whatever your putting in it... size is up to you
char str_two[] = " world";
strcat(str_one, str_two); //str_one now has "hello world"