当前位置: 首页 > 文档资料 > C 语言程序设计 >

常用的字符串函数-2

优质
小牛编辑
139浏览
2023-12-01

字符串常用函数

1500607330749

myitoa

#include <stdio.h>  
#include <string.h>  

void resver(char *s)//反转字符串  
{  
    int len = strlen(s);  
    //printf("len=%d\n",len);  
    int i = 0;  
    char tmp = 0;  
    for (; i<len/2; i++)  
    {  
        tmp = s[i];  
        s[i] = s[len-1-i];  
        s[len-1-i] = tmp;  
    }  
}  

const char *myitoa(int n)  
{  
    static char buf[100];//必须为static,或者是全局变量  
    memset(buf, 0, sizeof(buf));  
    int FlagF = 0;    //1-f, 0-z  
    int i = 0;  
    if (n < 0)  
    {  
        FlagF = 1;  
        n = 0 - n;  
    }  
    while (n)  
    {  
        buf[i++] = n % 10 + '0';  
        n = n / 10;  
    }  
    if (FlagF == 1)  
    {  
        buf[i++] = '-';  
    }  
    buf[i] = '\0';  
    printf("before buf:%s\n", buf);  
    resver(buf);  
    printf("after buf:%s\n", buf);  
    return buf;  
}  

int main()  
{  
    printf("%s\n", myitoa(123));  
    printf("%s\n", myitoa(-123));  
    return 0;  
}

myatoi

#include <stdio.h>  
int mystrlen(const char *s)  
{  
    int i = 0;  
    while (*s++)  
    {  
        i++;  
    }  
    return i;  
}  
int power10(int n)  
{  
    if (n == 0)  
    {  
        return 1;  
    }  
    int val = 1;  
    int i = 0;  
    for (; i < n; i++)  
    {  
        val = val * 10;  
    }  
    return val;  
}  
int char2i(char c)  
{  
    if ((c >= '0') || (c <= '9'))  
    {  
        return (c - '0');  
    } else  
    {  
        return 0;  
    }  
}  
int myatoi(const char *str)  
{  
    int FlagF = 0; //1-f, 0-z  
    const char *p = str;  
    int i = 0;  
    int value = 0;  
    if (str[0] == '-')  
    {  
        FlagF = 1;
        p = ++str;  
    }  
    int len = mystrlen(p);  
    int lentmp = len;  
    for (; i < len; i++)  
    {  
        value += char2i(p[i]) * power10(lentmp - 1);  
        lentmp--;  
    }  
    if (FlagF == 1)  
    {  
        return (0 - value);  
    } else  
    {  
        return value;  
    }  
}  

int main()  
{  
    const char *s = "-123";  
    printf("%d\n", myatoi(s));  
    return 0;  
}
函数声明功能描述
strcpy()拷贝字符串
strlen()求字符串长度
strcat()字符串连接
strncat()字符串连接,解决缓冲区溢出问题
strcmp()字符串比较
strncmp()比较两个字符串中前n字符是否完全一致
strstr()子串查找
strchr字符查找(第一次出现的位置)
strrchr查找指定字符在指定的字符串中最后一次出现的位置
strtok字符串分割
atoi()将一个数字字符串转换为十进制
itoa()将一个整数转换为不同进制下的字符串,VS提供的函数
sprintf()字符串格式化命令,把格式化的数据写入某个字符串中
strcspn(str1, str2)在字符str1中查找,与str2中任意字符有公共交集的位置

1499528052248

1499528092031

常用的字符处理函数

1500779257120

函数声明功能描述
isspace()是否为空格
isalpha()是否是字母
isalnum()是否是字母或数字
iscntrl()是否是控制字符
isdigit()是否是数字
islower是否是小写字母
isupper()是否是大写字母
tolower()转为小写字母
toupper()转为大写字母

1499528249677