多种方式实现字符串/无符号数反向输出_栈_递归_头尾指针

来源:互联网 发布:最美的诗词 知乎 编辑:程序博客网 时间:2024/05/01 08:17
1、递归调用方式实现无符号数反向输出

C语言实现(DEV c++4.9.9.2运行通过)
#include<stdio.h>void reverse_print(unsigned long num){    if(num==0)        return;    printf("%d",num%10); //输出最低位     reverse_print(num/10);//递归调用,依次输出最低位}int main(void){    unsigned long num=12345678;    reverse_print(num);    printf("\n");    system("PAUSE");    return 0;}


2、栈实现字符串的反转
C++实现,用C语言实现需要自己定义栈(DEV c++4.9.9.2运行通过)
#include<iostream>#include<stack>using namespace std;int main(){    stack<char> s;    char n;    cout<<"输入需要反转的字符串:"<<endl;    n=getchar();    while(n!='\n')    {        s.push(n);        n=getchar();                          }    while(!s.empty())    {         cout<<s.top();           s.pop();                                 }     cout<<endl;     system("pause");     return 0;   }

3、设立头尾指针实现字符串反向输出

C语言实现(DEV c++4.9.9.2运行通过)

#include<stdio.h>char *converse(char *str);int main(int argc,char *argv[]) {    char str[10];    int a = 1234567;    sprintf(str, "%d", a); //将整型数转换为char型数组   // printf("%s\n", s);   // char str[] = "1234567890zxcvbnma"; //需要转换的字符串数组     char *sdest;    printf("before converse:str= %s \n",str);    sdest = converse(str);     printf("after converse:str= %s \n",sdest);        system("PAUSE");    return 0; } char *converse(char *str) {     char temp;     char *s1 = str;  //s1:头指针    char *s2 = str+strlen(str)-1;//s2:尾指针      //头指针和尾指针交换指向的值,并向中间移动,直到相遇    for(;s1 < s2;s1++,s2--)     {         temp = *s1;         *s1 = *s2;         *s2 = temp;     }        return str; }  



原创粉丝点击