c - 我无法计算字符串中的单词
问题描述
int FindWords(char *str)
{
int i, word = 1;
for (i = 0 ; *(str + i)! = '\0'; i++) {
if (isspace(*str + i)) {
if (isspace(*str + i + 1)) {
continue;
}
word++;
}
}
return word;
}
我无法计算字符串中的单词。我用谷歌搜索了这个isspace()
功能。
解决方案
int FindWords(char *str) {
int i = 0, length = 0, word = 0;
length = strlen(str);
for (i = 1 ; i < length; i++) {
if (str[i] == ' ' && str[i-1] != ' ') {
word++;
}
}
if ( strlen(str)> 0) {
if (str[length-1] != ' '){
word++;
}
}
return word;
}
我会那样做。循环字符串中的所有字符,每次我们落在一个空格上并且前面的字符不是空格时,这意味着我们刚刚完成了一个新单词,所以我们增加了单词。如果最后一个字符不是空格,我们还会在最后增加 word。
strlen(str) 给我 str 字符串中的字符数。
推荐阅读
- java - 如何在 Java 中成功地从书中删除标签?
- javascript - 组件加载后运行 API 获取请求
- javascript - 如何在特定值为 1 的 jQuery.each 中计数
- android - Android StringRequest 未捕获 Laravel 错误
- python - Python在类文件对象中重写`read()`类方法
- ios - CloudKit正确接收和存储时间,查询时返回UTC时间
- node.js - 扫描币安智能链(nodejs + web3)上的所有智能合约创建
- azure - 如何在 Azure Web App 服务上部署 Kafka
- dc.leaflet.js - 如何访问 dc.leaflet.js 图表的图层,以便能够通过图层控件打开/关闭它?
- python - 最小(或最大)变量的良好起始值是多少?