注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

刺马的博客

 
 
 

日志

 
 

C 语言中操作字符串的一些函数实现  

2009-10-17 17:46:37|  分类: 程序 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

1. strlen(),计算字符串长度 
int strlen(const char string) 

int i=0; 
while(string[i]) i++; 
return i; 

2. strcpy(), 字符串拷贝. 
char *strcpy(char *destination, const char *source) 

while(*destinaton++=*source++); 
return (destination-1); 

3. strcat(), 字符串的连接. 
char *strcat(char *target,const char *source) 

char *original=target; 
while(*target) target++; // Find the end of the string 
while(*target++=*source++); 
return(original); 

4. streql(), 判断两个字符串是否相等. 
int streql(char *str1,char *str2) 

while((*str1==*str2)&&(*str1)) 

str1++; 
str2++; 

return((*str1==NULL)&&(*str2==NULL)); 

5. strchr(), 在字符串中查找某个字符. 
char *strchr(const char *string,int letter) 

while((*string!=letter)&(*string)) 
string++; 
return (string); 

6. chrcnt(), 计算某个字符在字符串中出现的次数. 
int chrcnt(const char *string,int letter) 

int count=0; 
while(*string) 
if(*string==letter)count++; 
return count; 

7. strcmp(), 判断两个字符串是否相等. 
int strcmp(const char *str1,const char *str2) 

while((*str1==*str2)&&(*str1)) 

str1++; 
str2++; 

if((*str1==*str2)&&(!*str1)) //Same strings 
return o; 
else if((*str1)&&(!*str2)) //Same but str1 longer 
return -1; 
else if((*str2)&&(!*str1)) //Same but str2 longer 
else 
return((*str1>*str2)?-1:1); 

8.strrev(),字符串翻转函数
char * strrev(char * s)
{
    int l = len(s);
    char ch;

    for(int i = 0; i < l / 2; i++)
    {
        ch = s[i];
        s[i] = s[l - 1 - i];
        s[l - 1 - i] = ch;
    }

    return s;
}
9.atoi(),字符串转成整型函数

int atoi(const char * s)
{
    int n = 0;

    while(!(*s >= '0' && *s <= '9'))
        s++;

    while(*s >= '0' && *s <= '9')
    {
        n *= 10;
        n += *s - '0';
        s++;
    }
    return n;
}

10.itoa(),整型转成字符串函数

char * tostring(int x, char * buf, int buflen)
{
    int i = 0;
    while(x)
    {
        if(i < buflen)
        {
            buf[i++] = x % 10 + '0';
        }
        else
        {
            break;
        }
        x = x / 10;
    }

    buf[i] = '\0';
    strrev(buf);
    return buf;
}

  评论这张
 
阅读(63)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018