我一直運行到一個問題,這個代碼在C++:C++不能獲取用戶輸入的strtok
#include <stdio.h>
#include <string.h>
#include <iostream>
#include <string>
using namespace std;
int main()
{
string words[25];
int i = 0;
char * word;
cout << "Input a phrase, no capital letters please.";
char phrase[100] = "this is a phrase";
word = strtok (phrase, " ,.");
while (word != NULL)
{
i++;
words[i] = word;
cout << words[i] << " ";
word = strtok (NULL, " ,.-");
int g = 0;
}
cout << endl << endl;
int g = 0;
while (g < i)
{
g++;
char f = words[g].at(0);
if ((f == 'a') || (f == 'e') || (f == 'i') || (f == 'o') || (f == 'u') || (f == 'y'))
{
words[g].append("way");
cout << words[g] << " ";
}
else
{
words[g].erase (0,1);
cout << words[g] << f << "ay" << " ";
}
}
cout << endl;
system("PAUSE");
}
其實我是想我的程序用戶生成的短語放在炭語[100]但我無法弄清楚正確的語法來啓動它的輸入,而不用搞砸翻譯。
這是一個將短語翻譯成豬拉丁文順便說一句的程序。
什麼的代碼最小的片段那會導致問題?請張貼,所以我們不需要通讀整個程序。換句話說,我認爲你的問題是,「如何將用戶輸入讀入C++中的char數組?」 –
如果你正在編寫C++並使用'strtok',你幾乎肯定會做錯某些事情。 – pmr