一个将字符串反向的函数,用了指针。老师的作业,初学者的我不会写,只能求助大神们
#include<stdio.h>
#include<string.h>
void pf(char *r)
{
if (*r!='\0'){
pf(r+1);
printf("%c", *r);
}
}
int main()
{
char s[50];
gets(s);
pf(s);
return 0;
}
#include <stdio.h>
#include <stdlib.h>
print(){
char a ;
scanf("%c",&a);
if(a!='#'){
print();
}
if(a!='#'){
printf("%c",a);
}
}
int main()
{
printf("Please input a string ending for '#' :\n");
print();
return 0;
}
觉得有帮助,望采纳,谢谢
#include <stdio.h>
#include <string.h>
int main()
{
char a[20] = {0}, b[20] = {0}, *p1, *p2;
printf("随意输入一个字符串:");
gets(a);
p1 = a;
p2 = b + strlen(a) - 1;
for( ; *p1 != '\0'; p1++, p2--)
*p2 = *p1;
*p2='\0';
printf("string a is: %s\n", a);
printf("string b is: %s\n", b);
return 0;
}
指针的方式实现
void print(char *sp) {
// 在没有遇到 '\0' 前都一直向下递归
if (*sp == '\0')
return;
print(sp + 1);
putchar(*sp);
}
供参考:
#include <stdio.h>
#include <string.h>
void revert(char *p,char *q)//递归函数--字符串逆序 指针操作
{
char tmp;
if(p < q)
{
tmp=*p;*p=*q;*q=tmp;
p++;q--;
revert(p,q);
}
return;
}
int main()
{
char s[80],*p,*q;
gets(s);
p=s;
q=s+strlen(s)-1;
revert(p,q);
printf("%s",s);
return 0;
}
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632