我有一个字符串声明为char的句子[100]; 在循环中,我从txt文件中读取不同的句子,我正在尝试这样做:
sentence = strtok (sentencefromtxtfile," ,.-");
//seperating word by word in a loop
我能做到。但是有一点问题。让我们说sentecenfromtxt文件的长度只有10.例如:
sentencefromtxtfile =“John” - >使用NULL,它是5个字符。但是strtok函数不能注意到NULL ch。所以我的句子变量是这样的:
John ÿ( ÕŒ•vÍ>È àı~øş( j (total 100 char)
那我怎么解决这个问题呢?我的意思是,我可以调整句子的长度吗?因为它是修复和100 ..无论如何,抱歉我的愚蠢的英语。我希望你们明白我的意思?提前谢谢..
答案 0 :(得分:4)
您可以使用\0
字符预填充缓冲区,然后通过发出以下内容填充:
char sentencefromtxtfile[100] = { 0 };
这可以解决您的问题,因为strtok()
未触及的所有字符都是NUL
。
答案 1 :(得分:1)
char[100]
是一个包含100个字符的数组,而不是字符串。您可以考虑使用std::string
。