Chinaunix首页 | 论坛 | 博客
  • 博客访问: 623302
  • 博文数量: 262
  • 博客积分: 8433
  • 博客等级: 中将
  • 技术积分: 2141
  • 用 户 组: 普通用户
  • 注册时间: 2009-05-31 09:37
文章分类

全部博文(262)

文章存档

2012年(1)

2011年(168)

2010年(92)

2009年(1)

分类: C/C++

2010-12-24 18:02:57


/*
 * string.c
 *
 * Created on: 2010-12-24
 * Author: qiang
 */


#include <stdio.h>
#include <stdlib.h>

typedef int ElemType;

//字符串转换:十进制整数转换成字符串

char* itoa(int num,char *str)
{
    int len=20;
    int i=0,j=0;
    char tmp[len];    //临时存放数据

    while(num)
    {
        tmp[i]=num%10+'0';    //除10取余,tmp存放的是倒序str

        i++;
        num/=10;
    }
    tmp[i]=0;    //字符串结束符

    printf("tmp is %s \n",tmp);

    i-=1;
    while(i>=0)
    {
        str[j++]=tmp[i--];
    }
    return str;
}

//字符串拷贝函数

char* mystrcpy(char* dest,const char* src)    //为了避免src无意中被修改,我们加入const加以修饰

{
    char* address=dest;    //存储目标起始地址


    while((*src) != '\0')
    {
        *dest=*src;
        dest++;
        src++;
    }
    *dest = '\0';

    return address;
}

//字符串删除函数

char* delsome( char* src, char* del,char* dest)
{
    int tmp=0;
    char *src2=src;    //字符串存储到静态数据区域

    char *p = del;    //将要删除的字符串暂存到*p中


    while(*src2)    //字符串为比较完

    {
        while(*p)    //del字符串没结束

        {
            if(*src2 == *p)    //字符相同,跳出循环;进行下次比较

                break;
            p++;            //比较字符向后移动

        }
        if(*p=='\0')        //字符串结束符-'\0',说明src中没有p中的元素

        {
            dest[tmp++]=*src2;        //存储提取的数据

        }
        src2++;
        p = del;    //重新赋值对比

    }

    dest[tmp]='\0';    //这里我们需要加入结束字符


    return dest;
}

int main()
{
    /*
    //整数转换成字符串形式
    int num;
    char str[20];
    printf("请输入要转换的十进制数字: \n");
    scanf("%d",&num);
    itoa(num,str);
    printf("转换后的字符串为:%s \n",str);
    */

    /*
    //字符串转换成整数形式
    int num=0,len=7;
    char str[]="123456";

    //转换开始
    int i,j;

    for(i=0;i     {
        num=num*10+(str[i]-'0');
    }
    printf("123456 转换后的整数为: %d \n",num);
*/

/*
    //字符串拷贝函数
    char src[]="abcdefg";
    char dest[8];
    printf("要复制的字符串: %s \n",src);
    mystrcpy(dest,src);
    printf("复制后的字符串:%s \n",dest);
*/


    //字符串删除某些特定字符

    char src[20]="askbskbc";
    printf("原字符串:%s \n",src);
    char del[20]="ask";
    printf("要删除的字符包含: %s \n",del);

    char dest[20];
    delsome(src,del,dest);
    printf("删除后的字符串为:%s \n",dest);

/*
    //测试字符串结束符标志- \0 (0)
    char a[4]="abc";
    char *str=a;
    while(*str)        //字符串结束符:\0(0)
    {
        str++;
    }
*/

    return 0;
}


文件:string.zip
大小:26KB
下载:下载
阅读(781) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~