2009-07-19 14 views
0

文字列である '*'を配列の文字に連結する必要があります。例えば文字列をCの文字列に連結

int count=5; 
string asterisk="*"; 
    char p[0]='a'; 
    char p[1]='b'; 
    char p[2]='a'; 
    char p[3]='b'; 
    char p[4]='b'; 
for(int i=0;i<count;i++) 
{ 
    asterisk=asterisk+"*"; 
    } 
    p[0]=p[0]+asterisk; 

私はこれをどのように行うことができますか?結果が "a*****"のようになります。

+4

あなたの質問は非常に不明です。いくつかのサンプル入力と出力をお願いします。より大きな画像が何になっているのかを示す価値があるかもしれません - それに近づく良い方法があるかもしれません。 –

答えて

1

あなたの例は私にとって有効なC#のようには見えません。あなたがやろうとしているすべての文字列の末尾にアスタリスクの束を連結、これは動作するはずである場合は、次の

string myString = "a"; 

for(int x = 0; x < 5; x++){ 
    myString += "*"; 
} 

//myString should now equal "a*****" 
1

あなたは同じchar配列の結果の文字列を格納しようとしている、それはないです可能あなたが唯一の文字を格納できる1つのchar型の変数に、あなたは結果を格納するためにstring[]List<string>を使用する必要がありますので...

List<string> result = new List<string>(); 
string asterisk = new string('*', 5); // Get a string with five * 

foreach (char c in charArray) 
{ 
    result.Add(c + asterisk); 
} 

それとも、オブジェクトへのLINQへのアクセスがある場合:

var result = charArray.Select(c => c + asterisk); // Select all 
                // chars and concatenate 
                // the variable 
を210
3

文字列を文字に連結することはできません。文字列は文字の集合であり、単一の文字の中に「フィット」しません。あなたは、おそらく一般的に

char asterisk = '*'; 
string []p = new string[] { "a", "b", "a", "b" }; 

p[0] = p[0] + new string(asterisk, count); 
3

ような何かをしたい

、これはStringBuilderを使用して行われるべきで、それは(あなたのコードとどのように多くのあなたがそれを実行した時間に応じて)、より良いパフォーマンスを与えるwhould。
また は、文字列は、文字と数字を取るコンストラクタを持っており、文字列内の文字をn回ことを示します:http://msdn.microsoft.com/en-us/library/aa331867%28VS.71%29.aspx
第三には、

char[] chars = "abcd".ToCharArray(); 

これはあなたを救うことができるのように、String.ToCharArrayを見てそこにいくつかの行。

1

私は問題が単語 "連結"だと思います。私は彼が上書きしたいと思う。そこで彼は、.CopyTo(

...

char[] p = { 'a', 'b', 'a', 'b', 'b' }; 
char[] asterisks = (new String('*', p.Length -1)).ToCharArray(); 
asterisks.CopyTo(p, 1); 
を紐のような半パスワードを表示することができます)、「P」のアレイに「アスタリスク」の配列を書き込みます。以前のポスターは、このような操作のためにStringBuilderを使うべきですが、文字の配列として持っていなければならない場合は、これを行う方法です。あなたが望むものを理解していると仮定すると、結果は "*****"のようになります。 ")