统计字符串单词数的两种方法(c语言实现)

 问题描述:统计一个字符串,字符串由单词,空格构成。

 思路:

  一,遍历字符串所有字符,设置一个布尔变量来判断当前是空格还是字母

    

 1 #include <stdio.h>
 2 #include <stdbool.h>
 3 #include <string.h>
 4
 5 int count_words(char* s)
 6 {
 7     int len=strlen(s);  // len存放字符串长度
 8     bool isWhite=true;
 9     int i,count=0;  //count用来计数单词数
10     for(i=0;i<len;i++)
11     {
12         if(*(s+i)==‘ ‘)  //当前字符为空
13         {
14             isWhite=true;
15         }else if(isWhite){  // 此句代码被执行表明:当前字符不为空且上个字符为空
16             count++;  //单词数+1
17             isWhite=false;  //进入非空格状态
18         }
19     }
20     return count;
21 }
22
23 int main()
24 {
25     char* a="i love you ";
26     printf("%d",count_words(a));
27 }

  

  二,遍历字符串所有字符,如果当前字符不为空,单词数+1,再嵌套一个while循环,判断当前单词是否结束

 1 #include <stdio.h>
 2 #include <string.h>
 3
 4 int count_words(char* s)
 5 {
 6     int len=strlen(s);
 7     int count,i;
 8     for(i=0;i<len;i++)
 9     {
10         if(*(s+i)!=‘ ‘){  // 如果当前代码为空
11             count++;  //单词数+1
12             while(*(s+i)!=‘ ‘&& i<len)  //判断当前单词是否结束
13                 i++;
14         }
15     }
16     return count;
17 }
18
19 int main()
20 {
21     char* a="i love you";
22     printf("%d",count_words(a));
23 }

原文地址:https://www.cnblogs.com/kiritozhj/p/9614931.html

时间: 2024-11-13 09:35:09

统计字符串单词数的两种方法(c语言实现)的相关文章

设置Weblogic的线程数有两种方法

使用Weblogic版本:Weblogic 11g(10.3.6) 设置Weblogic的线程数有两种方法, 第一种,通过启动参数设置: 1 -Dweblogic.threadpool.MinPoolSize=1000 -Dweblogic.threadpool.MaxPoolSize=1000 可以加在setDomainEnv.sh文件JAVA_OPTIONS下面: 第二种,通过config.xml配置文件: 1 2 3 4 5 <server> <name>AdminServe

Objectiv-C实现字符串反序的两种方法

第一种方法:(注意中文字符串的处理) #import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { NSString *[email protected]"我是一个字符串"; NSMutableString *str1=[NSMutableString string]; NSMutableString *str2=[NSMutableString stringWithUTF8Strin

递归很耗内存+多项式求值的两种方法+c语言计时方法

1.用for循环写一个函数,实现从1开始输出到N的正整数. 有两宗实现方法,一种是递归,另一种是非递归 //非递归 void PrintN1(int N){ int i; for(i=1;i<=N;i++){ printf("%d\n",i); } return; } //递归 递归对空间的需求很大,当数字很大的时候,需要很大的内存,当数字是十万的时候递归就崩了 void PrintN2(int N){ if(N){ PrintN2(N-1); printf("%d\n

js中字符串转换为数值的两种方法的区别

在js中字符串转换为数值的方法有三种:转换函数,强制类型转换,隐式转换 1.转换函数 parseInt()   //将字符串转换为整型 parseFloat()  //将字符串转换为浮点型 转换函数在进行类型转换时是可以传入参数的,默认转换为10进制,转换成功后返回的是整数类型的数值. 例:1. parseInt('AB3', 16) //返回结果:2739,表示将字符串转换为16进制的数值 2.parseInt('13', 10) //返回结果:13,表示将字符串转换为10进制的数值 3.pa

【Jquery】jQuery获取URL參数的两种方法

jQuery获取URL參数的关键是获取到URL,然后对URL进行过滤处理,取出參数. location.href是取得URL.location.search是取得URL"?"之后的字符串,也就是说參数部分. 方法一: function request(paras){ var url = location.href; var paraString = url.substring(url.indexOf("?")+1,url.length).split("&a

java中判断字符串是否相等有两种方法:

1.用“==”运算符,该运算符表示指向字符串的引用是否相同,比如: String a="abc";String b="abc",那么a==b将返回true.这是因为在java中字符串的值是不可改变的,相同的字符串在内存中只会存一份,所以a和b指向的是同一个对象:再比如:String a=new String("abc");String b=new String("abc");那么a==b将返回false,因为a和b指向不同的对

c语言:把只含因子2、3和5的数称为丑数,求按从小到大的顺序的第1500个丑数(两种方法比较)

把只含因子2.3和5的数称为丑数,求按从小到大的顺序的第1500个丑数.例如6.8都是丑数,但14不是,因为它包含因子7.习惯上把1当作第1个丑数. 算法1:逐个判断每个整数是不是丑数的解法,直观但不够高效 #include<stdio.h> int ugly(int number) { while (number % 2 == 0) { number /= 2; } while (number % 3 == 0) { number /= 3; } while (number % 5 == 0

排序字符串数组函数(两种方法)

//方法一: #include <stdio.h> #include <string.h> void sort(char *arr[], int n) {  char *tmp;  int i, j, k;  for (i = 0; i < n - 1; i++)                  //选择排序  {   k = i;   for (j = i + 1; j < n; j++)   {    if (strcmp(arr[k], arr[j])>0

两种方法求丑数

我们把只包含因子2.3和5的数称作丑数(Ugly Number).例如6.8都是丑数,但14不是,因为它包含因子7. 方法1 : 暴力破解,逐个判断 代码: <pre name="code" class="cpp">#include <iostream> #include <vector> using namespace std; //判断是否是丑数 bool isUgly(int index){ while(index % 2