添加字符串的null结尾

时间:2011-11-28 13:56:35

标签: c++ string null strtok

我有一个字符串声明为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 ..无论如何,抱歉我的愚蠢的英语。我希望你们明白我的意思?提前谢谢..

2 个答案:

答案 0 :(得分:4)

您可以使用\0字符预填充缓冲区,然后通过发出以下内容填充:

char sentencefromtxtfile[100] = { 0 };

这可以解决您的问题,因为strtok()未触及的所有字符都是NUL

答案 1 :(得分:1)

char[100]是一个包含100个字符的数组,而不是字符串。您可以考虑使用std::string