• 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 == '' )
             //   break;
        // for( last_char = str; *last_char != ''; last_char++ )
         // ;
    
        /*
        **设置last_char存储最后一个字符位置
        */
        for( last_char = &str[0]; *last_char != ''; 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 == '' )
             //   break;
        // for( last_char = str; *last_char != ''; last_char++ )
         // ;
    
        /*
        **设置last_char存储最后一个字符位置
        */
        for( last_char = &str[0]; *last_char != ''; 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;
    }
    
    仅仅是多了个中间变量而已,这是为什么呢?
  • 相关阅读:
    HTML和XHTML知识总结
    理解margin-left:-100%
    git clean的用法
    vue路由传参的三种基本方式
    vertical-align属性
    纯CSS制作各种图形(多图预警)
    css伪元素:before和:after用法详解
    前端注册登录的业务流程
    Vue-cli 中为单独页面设置背景图片铺满全屏的方法
    vscode 开启对 webpack alias(文件别名) 引入的智能提示
  • 原文地址:https://www.cnblogs.com/bhlsheji/p/5079137.html
Copyright © 2020-2023  润新知