//
// 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;
}