zoukankan      html  css  js  c++  java
  • 关于strtok函数

    函数原型:

    char *strtok(char * strToken, const char *strDelimit)

    参数说明:

    strToken:源字符串,即待分割的串

    strDelimit:strToken会根据这里的每个字符进行分割

    返回值:

    指向第一段被截取出来的字符串的指针,如果没有找到,则返回NULL。

    调用说明:

    (1)第一次调用strtok时,第一个参数是strToken。以后再调用时,第一个参数必须是NULL

    (2)调用strtok后,源字符串会被修改

    (3)strtok不是一个线程安全的函数

      1:    char str[] = "now # is the time for all # good men to come to the # aid of their country";  
    
      2:    char delims[] = "#";  
    
      3:    char *result = NULL;  
    
      4:    result = strtok( str, delims );  
    
      5:    while( result != NULL ) 
    
      6:    {  
    
      7:        printf( "result is "%s"
    ", result );  
    
      8:        result = strtok( NULL, delims );  
    
      9:    }  

    这个函数的应用:

    HDU 2526 和 HDU 1106

    #include<cstdio>
    
    #include<cstring>
    
    #include<algorithm>
    
    #define MAXN 1010
    
    using namespace std;
    
    char str[MAXN],*p;
    
    int  num[MAXN];
    
    int main()
    
    {
    
    	while (~scanf("%s",str))
    
    	{
    
    		int cnt=0;
    
    		p=strtok(str,"5");
    
    		while (p)
    
    		{
    
    			num[cnt++]=atoi(p);
    
    			p=strtok(NULL,"5");
    
    		}
    
    		sort(num,num+cnt);
    
    		for(int i=0;i<cnt;i++)
    
    			if(i+1==cnt) printf("%d
    ",num[i]);
    
    			else		 printf("%d ",num[i]);
    
    	}
    
    	return 0;
    
    }
    

    #include<cstdio>
    
    #include<cstring>
    
    #include<cctype>
    
    #define MAXN 150
    
    using namespace std;
    
    char str1[MAXN],str2[MAXN];
    
    int main()
    
    {
    
    	int t;
    
    	char *p;
    
    	scanf("%d",&t);
    
    	getchar();
    
    	while (t--)
    
    	{
    
    		int cnt=0;
    
    		gets(str1);
    
    		p=strtok(str1," ");
    
    		while (p)
    
    		{
    
    			str2[cnt++]=toupper(*p);
    
    			p=strtok(NULL," ");
    
    		}
    
    		str2[cnt]=0;
    
    		printf("%s
    ",str2);
    
    	}
    
    	return 0;
    
    }
    
  • 相关阅读:
    【转】Android——设置颜色的三种方法
    Eclipse Android安装APP时覆盖安装问题
    自定义数组,实现输出改数组的长度、最大值和最小值
    用程序实现对数组a[45,96,78,6,18,66,50]中的元素进行排序
    PHP面试题2
    PHP面试题
    gulp
    移动端base.css
    笔记
    mouseover和mouseout事件在鼠标经过子元素时也会触发
  • 原文地址:https://www.cnblogs.com/gt123/p/3689290.html
Copyright © 2011-2022 走看看