2015-09-27 45 views
-1
string line = "testtesttest"; 
string whole = line[i]; 

爲什麼不能使用此代碼?我需要做這種轉換,所以我可以用的strcmp這樣我就可以將字符串元素比較字符如何將字符串中的元素轉換爲C++自己的字符串?

char symbols[3][3] = {'--', '*-', '-*'}; 

我試圖做的數組這

if (strcmp(line[i],symbols[j]) == 1) 

但顯然line[i]不算數作爲一個字符串,所以我認爲將line[i]轉換爲字符串將是最好的行動方式。我已經嘗試了多次其他轉換,以找到一種方法將string[i]的元素與每個字符'symbol進行比較,但是沒有任何內容適用於我。我試過strcpy和更多的東西,我感到沮喪,任何幫助表示讚賞。

+1

['string :: substr()'](http://en.cppreference.com/w/cpp/string/basic_string/substr)可以滿足你的需求。或者簡單地寫'if(line [i] == symbols [j])'。 –

+0

你似乎在這裏有很多誤解。你可能會更好地報廢你寫的內容,並從頭開始重新考慮它。或者至少問一個關於你想要做什麼的問題,而不是試圖用你試圖做到的方式來解決問題。 – Hurkyl

+1

請注意'' - ''不是一個C字符串,而是一個多字節字符文字,而'strcmp',雖然不是合適的工具,但會爲匹配返回零。 – Quentin

回答

1

std::string構造函數列表:http://www.cplusplus.com/reference/string/string/string/

您可以從另一字符串這樣包含單個字符的字符串:

string whole(1, line[i]); 

或者這樣:

string whole(line, i, 1); 

在第一種情況,如果你將1更改爲更大的數字,你會得到單個字符的許多副本。在第二種情況下,您將獲得更長的子字符串。

相關問題