The practice program of C on point

//字符反向排列
//vision 1.2
#include<stdio.h>

void reverse_string( char *str )
{
    char *string;//第一个字符位置
    char *last_char;//最后一个字符位置

    //for( last_char = str; ; last_char++ )
       // if( *last_char == '\0' )
         //   break;
    // for( last_char = str; *last_char != '\0'; last_char++ )
     // ;

    /*
    **设置last_char存储最后一个字符位置
    */
    for( last_char = &str[0]; *last_char != '\0'; last_char++ )
     ;

    string = &str[0];
    last_char--;

    /*
    **交换前后指针指向位置的值  前指针添加  后指针降低
    */
    while( string < last_char )
    {
        char temp;
        temp = *string;
        *string++ = *last_char;
        *last_char-- = temp;
    }

    printf( "%s", str );
}

int main( void )
{
    char str[10] = {"abcdef"};
    reverse_string(str);
    return 0;
}
在不使用库函数情况下 自己还是把这个库函数里有的函数敲出来了。仅仅是有个迷惑的地方。这是终究版本号,但之前有个版本号,输出始终仅仅有源字符串的一半长度。同一时候也是反转了的。不理解。

希望有明确的朋友看见后能够告知下。小子我在此谢谢了~源代码例如以下:

//字符反向排列
//vision 1.2
//程序结果错误 为什么?
//就眼下  我推測问题出在数组的指针上
//直接对原数组的指针进行操作 应该找个中间量存储開始指针。
//未完待续····
#include<stdio.h>

void reverse_string( char *str )
{
    char *last_char;//最后一个字符位置

    //for( last_char = str; ; last_char++ )
       // if( *last_char == '\0' )
         //   break;
    // for( last_char = str; *last_char != '\0'; last_char++ )
     // ;

    /*
    **设置last_char存储最后一个字符位置
    */
    for( last_char = &str[0]; *last_char != '\0'; last_char++ )
     ;


    last_char--;

    /*
    **交换前后指针指向位置的值  前指针添加  后指针降低
    */
    while( str < last_char )
    {
        char temp;
        temp = *str;
        *str++ = *last_char;
        *last_char-- = temp;
    }

    printf( "%s", str );
}

int main( void )
{
    char str[10] = {"abcdxuf"};
    reverse_string(str);
    return 0;
}
仅仅是多了个中间变量而已,这是为什么呢?
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值