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;
}