Mr.HO 发表于 2018-5-22 01:00:12

字符串翻转

本帖最后由 Mr.HO 于 2018-5-22 20:05 编辑




#define _CRT_SECURE_NO_WARINGS
#include <stdio.h>
#include<stdlib.h>
#include<string.h>

void main()

{
        char strings[]={"abcdefg"};
        char *p1=strings;
        char *p2;
        char ch;
        printf("原始字符串    %s\n",strings);
        p2=p1+strlen(strings)-1;
        while(p1<p2)
        {
                ch=*p1;
                *p1=*p2;
                *p2=ch;

                p1++;
                p2--;
        }
        printf("翻转字符串    %s\n",strings);


system("pause");
return;
}

Mr.HO 发表于 2018-5-22 20:06:05

补充一个递归算法
#define _CRT_SECURE_NO_WARINGS
#include <stdio.h>
#include<stdlib.h>
#include<string.h>

void Recursion(char *p,char *outbuf)
{
        if (NULL==p)
        {
                return ;
        }
        if (*p=='\0')
        {
                return ;
        }
        Recursion(p+1,outbuf);
        strncat(outbuf,p,1);
        return ;
}
void main()

{
        char o[]="0123456789";
        char outbuf={0};
        Recursion(o,outbuf);
        printf("%s",outbuf);


system("pause");
return;
}

Mr.HO 发表于 2018-5-22 20:55:12

#define _CRT_SECURE_NO_WARINGS
#include <stdio.h>
#include<stdlib.h>
#include<string.h>

int trimSpace(char *inbuf,char *outbuf)
{
        char *p=inbuf;
        char *w=outbuf;
        if(NULL==inbuf || NULL==outbuf)
        {
                printf("the function trimSpace() is ERROR!\n");
                return -1;
        }
        while(*p!='\0')
        {
                if (!isspace(*p))
                {
                        *w=*p;
                        w++;
                }
                p++;
        }
        *w='\0';
        return 0;


}




void main()

{
        char a="            ho    janan         ";
        char outbuf={0};
        trimSpace(a,outbuf);
        printf("复制的数据 %s\n",outbuf);



system("pause");
return;
}
页: [1]
查看完整版本: 字符串翻转