2009-07-19 28 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

你的問題很不清楚。請給出一些樣本輸入和輸出。也許值得一提的是,更大的局面是 - 可能有更好的方法來處理它。 – 2009-07-19 06:56:41

回答

1

你的例子看起來不像是有效的c#給我。如果你正在試圖做的一切是串聯在字符串的結尾一堆星號的,這應該工作:

string myString = "a"; 

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

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

您正在嘗試存儲相同char陣列中生成的字符串,這是不可能的,因爲在一個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 
3

您不能將字符串連接到字符。一個字符串是一個字符集合,並且不會「適合」單個字符。

你可能要像

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

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

我認爲問題是單詞「concatenate」。我想他想覆蓋。這樣他就可以表現出半密碼一樣串...

char[] p = { 'a', 'b', 'a', 'b', 'b' }; 
char[] asterisks = (new String('*', p.Length -1)).ToCharArray(); 
asterisks.CopyTo(p, 1); 

.CopyTo()將寫入「星號」排列到「P」陣列。以前的海報是正確的,因爲您應該使用StringBuilder進行這種操作,但是如果您必須將其作爲字符數組來使用,則可以這樣做。 (假設我明白你想要什麼)「我希望結果像」a *****「。」)