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