2015-11-07 70 views
0

我需要在同一時間標記一個字符串的每個字符和它的索引號。但是當我輸入它時我想這樣做。對於輸入,我使用了一個循環並嘗試了cin >> str [i] //其中str是我的字符串。 但是最後還會有垃圾焦。 例如: 我輸入警察,但它來警察%或警察, 我用getchar()。 我該如何解決它? 如何通過字符輸入一個字符串?如何通過字符輸入一個字符串

我chceck此代碼,發現錯誤。

int n,m; 
    cin>>n>>m; 
    char str[n+1]; 
    vector<int>v[125]; 
    for(int i=0;i<n;i++){ 
     cin>>str[i]; 
     int ch=str[i]; 
     v[ch].push_back(i); 
    } 
    getchar(); 
    cout<<str<<endl; 
+2

顯示完整的代碼。 – Haris

+1

你*做*記得要終止字符串? C風格的字符串全部由特殊字符''\ 0''終止。將數組視爲沒有終止符的字符串會導致*未定義行爲*。 –

+0

是的,我必須記住字符串。 –

回答

-1

For循環的終止放條件爲 Str[I]!='\0' \0null性格和將指示語句的結束。

+0

我編輯了我的帖子。請重新檢查它。 –

+2

實際的問題是,字符串*不是以null結尾的。他需要一個'str [n] ='\ 0''。 –

相關問題