单词倒转

Strtok 函数
原型:char *strtok(char *s, char *delim);
功能:分解字符串为一组字符串。s为要分解的字符串,delim为分隔符字符串。
说明:首次调用时,s指向要分解的字符串,之后再次调用要把s设成NULL。
              strtok在s中查找包含在delim中的字符并用NULL('/0')来替换,直到找遍整个字符串。
返回值:从s开头开始的一个个被分割的串。当没有被分割的串时则返回NULL。
              所有delim中包含的字符都会被滤掉,并将被滤掉的地方设为一处分割的节点。
该函数把你的字符串需要分割的部分置成了null  
  例如:  
  char   a[]="abcde//abcde//abcde"  
  处理后变成 
  abcde(NULL)abcde(NULL)abcde(NULL)  
  然后它再一个一个NULL的跳 
//strtok 函数
 
#include <string.h>
#include <stdio.h>
 
int main(void)
{
   char input[16] = "abc,d";
   char *p;
   p = strtok(input, ",");
   if (p)
        printf("%s/n", p);
   p = strtok(NULL, ",");
   if (p)
        printf("%s/n", p);
    return 0;
}
 
#include <string.h>  
#include <stdio.h>  
   
char string[] = "A   string/tof   ,,tokens/nand   some     more   tokens";  
char seps[] = "   ,/t/n";  
char *token;  
   
int main ()  
{  
   printf("%s/n/n:/n",   string);  
   /* 最初的位置取得*/   
    token = strtok(string,seps);  
    while (token != NULL)  
        {
         /*   重复取得位置 */   
           printf(   "   %s/n",   token   );  
            /*   下一个NULL取得 */   
           token   =   strtok(   NULL,   seps   );  
        }  
     return 0;
输出结果:
A   string      of   ,,tokens
and   some     more   tokens
 
:
   A
   string
   of
   tokens
   and
   some
   more
   tokens
 
strdup 函数
功  能: 将串拷贝到新建的位置处
用  法: char *strdup(char *str);

#include <stdio.h>
#include <string.h>
int main(void)
 {
    char *dup_str, *string = "abcde";
    dup_str = strdup(string);
    printf("%s/n", dup_str);
    return 0;
 }
 
#include <stdio.h>
#include <string.h>
#include <malloc.h>
 
char *fun(char *a);
 
int main(int argc, char* argv[])
{
   char *string = "This is a good day today";
   char *ll=fun(string);
   printf("%s",ll);
   return 0;
}
 
char *fun(char *a)
{
   char *ptt = (char *)malloc(strlen(a));
   ptt = a;
   char *ftt = (char *)malloc(strlen(a));
   *ftt = '/0';
   char step[] = " ";
   char *token;
   token = strtok( strdup(a),step);
/*strtok() 检索字符串s1,该字符串s1是由字符串s2中定义的定界符所分隔*/
/*strdup() 将字符串s复制到最近建立的单元*/
   while(token != NULL)
   {
      strcat(ftt,strrev(token)); /*strrev() 将字符串s复制到最近建立的单元*/
      strcat(ftt," ");
      token = strtok( NULL,step);
   }
   //*(ftt + strlen(a)-1) = '/0';
   return ftt;
}
 
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值