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

摘要:
s、 空()){cout˂˂s.top();s.pop();}cout˂˂endl;系统return0;}3.设置头部和尾部指针,实现字符串反向输出C语言实现#include<studio h>char*converse;Intmain{charstr[10];inta=1234567;sprintf;//将整数转换为char数组//printf;//charstr[]=“1234567890zxcvbnma”;//要转换的字符串数组char*sdest;printf,sdest=converse;printf;system;return0;}Char*converse{chartemp;Char*s1=str;//s1:head pointer Char*s2=str+strlen-1;//s2:tail pointer//头指针和尾指针交换它们所指向的值并向中间移动,直到它们相遇{temp=*s1;*s1=*s2;*s2=temp;}returnstr;}
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; 
}  


免责声明:文章转载自《多种方式实现字符串/无符号数反向输出_栈_递归_头尾指针》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇解决ZendStudio打开utf-8格式的php文件乱码深入理解Java异常的使用场景下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

java 除法运算只保留整数位的4种方式

  1.情景展示   根据提供的毫秒数进行除法运算,如果将毫秒数转换成小时,小时数不为0,则只取整数位,依此类推... 2.情况分析   可以使用3个函数实现   Math.floor(num)   只保留整数位   Math.rint(num)     余数四舍五入   Math.ceil(num)     取整位,再+1   举例: double n...

Oracle自定义函数

  自定义函数和存储过程类似,区别是,存储过程注重于处理某件事情,多和DML有关,而函数注重于获取某些数据,多和DQL有关 格式 CREATE OR REPLACE FUNCTION 函数名(参数 数据类型) RETURN 返回的数据类型 IS 变量名 返回的数据类型;-- 存储返回的数据 BEGIN -- 略 ,此处给变量赋值 RETURN...

typedef 的用法

typedef 的用法   *****以下是参考部分*****   此部分参考自:http://blog.sina.com.cn/u/572f7666010008dm   用途一:   定义一种类型的别名,而不只是简单的宏替换。可以用作同时声明指针型的多个对象。比如:   char* pa, pb;  // 这多数不符合我们的意图,它只声明了一个指向字符变...

多线程中,ResultSet为空,报错空指针

最近在数据库查询数据时,由于数据量太大,使用了多线程,通过线程池建了好几个线程,然后调用了一个封装好的jdbc查询语句。 结果在多线程中,ResultSet报错空指针。 仔细查阅后,才发现多个线程访问了同一个connection,事务混乱,导致了空指针。 解决方法: 使用数据库连接池,这样一个线程各自使用一个connection,就不会有冲突了。...

C语言动态内存分配

C语言动态内存分配:堆不连续 栈连续 动态内存分配: 1.从静态存储区域中分配(系统自己分配) 2.从堆内存中分配(动态内存分配) 3.在栈中进行分配(系统自己分配) 动态内存分配和释放函数: malloc函数 calloc函数 recalloc函数 free函数 常见内存分配错误: 使用未分配的内存 引用了分配成功但尚未初始化的内存 内存分配且初始化了,...

react 实现圆环进度条

import React, { useState, useEffect } from "react" import { css } from "emotion" //num是从父级传来的百分比数值 export default function({ num }) { let rightTrnas = css` transform: rotate(0deg)...