您的位置:首页 > 其它

字符串反向输出的几种方法

2013-07-29 22:25 274 查看
1、递归调用方式实现无符号数反向输出

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

[cpp]

#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;

}

#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运行通过)

[cpp]

#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;

}

#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运行通过)

[cpp]

#include<stdio.h>

char *converse(char *str);



int main(int argc,char *argv[])

{

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;

}

#include<stdio.h>

char *converse(char *str);

int main(int argc,char *argv[])

{

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;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: