2014-02-13 157 views
1

編輯的某一部分:我看它是如何工作的,現在,該字符串myString它佔用空間後一切英寸那麼,如果你想取名字而不是姓氏,這將如何完成,因爲如果你這樣做,現在你不能使用這個空間。如何打印出一個字符串

我想獲得用戶輸入他們的第一個和最後一個名字,然後我想打印自己的姓氏只到屏幕上。

我知道如何詢問用戶的問題,我是用getline得到他們的名字的字符串。但是,一旦發生這種情況,我怎樣才能把他們的姓氏打印出來,而不用打印出他們的名字。我想,我似乎無法隔離字符串的每一部分。

我試圖尋找一個答案,但我似乎無法找到一個。

using namespace std; 
int main() 
{ 
    string firstName; 
    string lastName; 

    cout << "Welcome to my store!" << endl; 
    cout << "---------------------------" << endl; 
    cout << "Please enter your first and last name. "; 
    getline(cin, firstName); 
    cout << "\nThank you " << firstName << " for shopping with us!"; 
} 

我離開,則對getline的是,因爲我試圖函數getline(CIN,名字,姓氏),企圖通過用戶每個字輸入分配到一個字符串,但沒有奏效。

+0

顯示你已經盡力了,那麼我們可能會有助於更好地 – Itachi

回答

0

我認爲這是你在找什麼(用於打印僅在過去的名字)

#include <iostream> 
#include <string> 
using namespace std; 
int main() 
{ 
string myString; 
int i; 
cout<<"\n Enter a name:"; 
getline(cin, myString, '\n');//Get a name where first name and last name is seperated by a space 
i=myString.find(' ');//find the find occurance of space in that string 
cout<<"thanks for shopping:"; 
cout<<myString.substr(i,myString.length());//printing the rest of the string from the occurence of space 
return 0; 
} 

當你給像「鄧德」 它說輸入「感謝購物:德家」

+0

嘿,感謝這個工作,但你不介意解釋如何實現這一點? – Christoph

+0

@Christoph查找的std :: string :: find()方法的std :: string :: SUBSTR() –