字符串的小练习

//
//  main.c
//  字符串函数练习
//
//  Created by admin on 16/3/31.
//  Copyright © 2016年 jin. All rights reserved.
//

#include <stdio.h>
// 字符串拷贝
void test1(char * dest, const char * src)
{
    int i = 0;
//    printf("%s\n",src);
    while (1) {
        if(src[i] == '\0')
        {
            dest[i] = '\0';
            break;
        }
        dest[i] = src[i];
        i++;
    }
}
// 字符串拷贝
char * test2(char * dest, const char * src)
{
    //    printf("%s\n",src);
    char * temp = dest;
    // 如果不是结束就继续运行
    while (*src != '\0') {
//            printf("%c\n",*src);
        // 赋值
        *dest = *src;
        // 指针位置后移
        dest++;
        src++;
    }
    // 添加结束符
    *dest = '\0';
    return temp;
}
// 字符串拷贝
char * test3(char * dest, const char * src)
{
    //    printf("%s\n",src);
    char * temp = dest;
    // 完成赋值并移动指针地址
    while ((*dest++ = *src++));
//    *dest = '\0';
    return temp;
}
// 字符串拼接
char * test4(char * dest, const char * src)
{
    //    printf("%s\n",src);
    char * temp = dest;
    // 把指针移动到 \0
    while (*++dest != '\0');
    // 字符串替换
    while ((*dest++ = *src++));
    // 回到开始的地址
    dest = temp;
    return dest;
}
// 字符串比较
int test5(const char * str1, const char * str2)
{
    /**
    while (*str1 != '\0' || *str2 != '\0')
    {
        if (*str1 > *str2) {
            return 1;
        }
        if (*str1 < *str2) {
            return -1;
        }
        str1++;
        str2++;
    }
    // 回到开始的地址
    return 0;
     */
    while (*str1 == *str2 && *str1 != '\0')
    {
        str1++;
        str2++;
    }
    return (*str1 - *str2);
}
int main(int argc, const char * argv[]) {

    /**
     字符串比较
     char str1[] = "swift";
     char str2[10];

     printf("%s\n",str2);
     test1(str2, str1);
     printf("%s\n",str2);
     printf("%s\n",str1);
     return 0;

     char str1[] = "swift";
     char str2[10];

     printf("%s---1\n",str2);
     test3(str2, str1);
     printf("%s---2\n",str2);
     printf("%s---1\n",str1);

     */
    /**
     字符串替换
    char str1[] = "swift";
    char str2[10] = "php";
    test4(str2, str1);
    printf("%s---2\n",str2);
     */
    char str1[] = "casdasd";
    char str2[10] = "casdase";
    printf("%i\n",test5(str1, str2));
    return 0;
}

标签: c

添加新评论