C语言字符串处理函数 strtok() 和 atoi() 的使用

字符串函数(String processing function)也叫字符串处理函数,指的是编程语言中用来进行字符串处理的函数。本文主要介绍 C语言中符串处理函数 strtok()和atoi()的区别使用方法,以及相关的示例代码。

1、strtok()

将字符串分割成一个个片段。当 strtok()在参数 s 的字符串中发现参数 delim 中包含 的分割字符时, 则会将该字符改为\0 字符,当连续出现多个时只替换第一个为\0。代码如下,

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
/*
char *strtok(char s[], const char *delim); 
参数
str:指向欲分割的字符串
delim:为分割字符串中包含的所有字符

返回值
成功:分割后字符串首地址
失败:NULL
第一次调用时:strtok()必需给予参数 s 字符串
之后的调用则将参数 s 设置成 NULL,每次调用成功则返回指向被分割出片 段的指针
*/
    char str[80] = "CJP1415/2021-2-14 9:15/30.0C";
     const char s[2] = "/";

     char *token;

     char *SN;
     char *datime;
     char *temper;

      
     token = strtok(str, s);
     SN = token;
  
   if(token!=NULL)
   {
     token = strtok(NULL, s);
     datime = token;       
   }
   if(token!=NULL)
   {
     token = strtok(NULL, s);
     temper = token; 
   }
     printf( "%s\n", SN );
     printf("%s\n", datime);
     printf("%s\n", temper);

    return(0);
}

2、atoi()

atoi()会扫描 nptr 字符串,跳过前面的空格字符,直到遇到数字或正负号才开始做转 换,而遇到非数字或字符串结束符(’\0’)才结束转换,并将结果返回返回值。代码如下,

#include <stdio.h>
#include <stdlib.h>

int main ()
{
/*
int atoi(const char *nptr); 
参数
nptr:待转换的字符串

返回值
成功转换后整数,如转换的字符串不为数字或为空字符串,则返回0
*/
    char *ptr1 = "-12345.12";
    char *ptr2 = "+1234w34";
    char *ptr3 = "   456er12";
    char *ptr4 = "789 123";
    int a,b,c,d;

    a = atoi(ptr1);
    b = atoi(ptr2);
    c = atoi(ptr3);
    d = atoi(ptr4);

    printf("a = %d, b = %d, c = %d, d = %d\n", a,b,c,d);

    return 0;
}

推荐阅读
cjavapy编程之路首页