相关头文件
#include <string.h>
#include <stdlib.h>
数字转字符串
//num_str 由用户手动分配
int str_to_num(char *num_str){
//atoi()只针对整数int,相应的有atof(),atol(),atoll(),自查
int num = atoi(num_str);
return num;
}
字符串转数字
char * num_to_str(int num){
//itoa(int i) 在Linux或unix不存在
char *buf = malloc(sizeof(num));
//一般我用这种方式
sprintf(buf, "%d",num);
/*
//10代表十进制
char *num_str = gcvt(num, 10, buf);
return num_str;
*/
free(buf);
return buf;
}
字符串连接
char * contact_str(char *s1,char *s2){
unsigned long s1_len = strlen(s1);
unsigned long s2_len = strlen(s2);
unsigned long re_len = s1_len + s2_len;
char *buf = (char *)malloc(re_len+1);
/*
for (int i = 0; i<s1_len; i++) {
buf[i] = s1[i];
}
for (int i = 0; i<s2_len; i++) {
buf[i+s1_len] = s2[i];
}
*/
memcpy(buf, s1, s1_len);
memcpy(buf+s1_len, s2, s2_len);
//不能在这里释放,要在外部释放
// free(buf);
return buf;
}
字符串子串
char *str_sub(char *s,int from,int len){
if (s && strlen(s)) {
s = s + from;
char *sub = (char *)malloc(len+1);
/*
for (int i = 0; i<len; i++) {
//printf("%c\n",s[from+i]);
sub[i] = s[from+i];
}
*/
memcpy(sub, s, len);
//不能在这里释放,要在外部释放
// free(sub);
return sub;
}
return NULL;
}
网友评论