字符串转置

/*************************************************************************
    > File Name: revert.c
    > Created Time: 2014年06月07日 星期六 22时39分21秒
 ************************************************************************/

#include<stdio.h>
#include<string.h>
//基于字符数组的转置
void revert(char *str)
{
    printf("method reverse
");
    int length = strlen(str);
    char tem;
    int i;
    for(i = 0; i < length/2; i++)
    {
        tem =  str[i];
        str[i] =  str[length-i-1];
        str[length-i-1] = tem;
    }
}
//基于c指针的转置
void revert1(char *str)
{
    printf("method revers1:
");
    int length = strlen(str);
    char tem;
    int i;
    for(i = 0; i<length/2; i++)
    {
        tem = *(str+i);
        *(str+i) =  *(str+length-i-1);
        *(str+length-i-1) = tem;
    }
}
//纯c语言实现,不含任何库函数
void revert2(char *str)
{
    printf("mehtod revert2
");

    int len = 0;
    while(*(str+len) != '')len++;
    char *start = str;
    char *end = str+len-1;
    int size = len/2,i=0;
    while(++i<=size)
    {
        char tem = *end;
        *end = *start;
        *start = tem;
        start++;
        end--;
    }
    //printf("%s
",str);
}



int main()
{
    char str[100];
    printf("请输入一个字符串:
");
    scanf("%s",str);
    revert(str);
    printf("字符串转置后:
");
    printf("%s
",str);
    revert1(str);
    printf("字符串转置后:
");
    printf("%s
",str);
    revert2(str);
    printf("字符串转置后:
");
    printf("%s
",str);
    return 0;
}
原文地址:https://www.cnblogs.com/newpanderking/p/3787711.html