好吧,只是在C中创建一个基本的单词计数程序,该程序从.txt文件读取,而我只是停留在实际的单词计数功能上,而没有从文件中检测到双换行符,这是代码的特定位:>
while((c = fgetc(file)) != EOF)
{
if(c == ' ')
count++;
if(c == '\n')
count++;
if (c == '\n\n')
count--;
}
printf("words = %d\n", count);
因此,只有前两个if语句起作用,而第三个if语句什么也不做,我希望这样做可以减少计数器,因为我不希望将双换行符视为一个单词。有人知道解决方案吗?我搜索了一段时间,但没有发现此特定问题。
答案 0 :(得分:0)
当遇到双换行符时,var postData = [String]()
var Handle:DatabaseHandle?
override func viewDidLoad() {
super.viewDidLoad()
tableView.delegate = self
tableView.dataSource = self
guard let uid = Auth.auth().currentUser?.uid else {return}
let database = Database.database().reference()
Handle = database.child("Shifts").child("7 27").observe(.value) { (snapshot) in
print(snapshot)
let post = snapshot.value as? String
if let actualPost = post{
self.postData.append(actualPost)
self.tableView.reloadData()
}
}
}
将被读取两次,从而在每次迭代时触发第二个\n
,因为if
一次只能读取一个字符。对于主要问题,可以通过引入额外的标记来轻松实现双换行的检测。这种方法可能应该扩展为处理各种单词分隔符。
fgetc