用指针和数组两种方法实现如下功能:将一个字符串按逆序存放。
3个回答
展开全部
#include <stdio.h>
#include <string.h>
void dz(char *str);
int main()
{
char str[100];
printf("输入一个字符串:");
scanf("%s",str);
dz(str);
printf("倒置后的字符串:%s\n",str);
return 0;
}
void dz(char *str)
{
int len;
char *p0,*p1,c;
len=strlen(str);
p0=&str[0];
p1=&str[len-1];
while(1)
{
c=*p1;
*p1=*p0;
*p0=c;
p0++;p1--;
if(p1<=p0)
break;
}
}
展开全部
#include<stdio.h>
#include<string.h>
char* inv1(char*s)
{
int i,n;
char ch;
n=(int)strlen(s);
for(i=0;i<=n/2;i++)
{
ch=s[i];
s[i]=s[n-1-i];
s[n-1-i]=ch;
}
return s;
}
char *inv2(char*s)
{
char *p1,*p2;
char ch;
p1=s;
p2=s+strlen(s)-1;
while(p1<p2)
{
ch=*p1;
*p1=*p2;
*p2=ch;
p1++;
p2--;
}
return s;
}
int main()
{
char str[]="hello!";
printf("原始字符串为%s\n",str);
printf("数组逆序后字符串为:\n");
puts(inv1(str));
printf("指针逆序后字符串为:\n");
puts(inv2(str));//两次逆序和原来一样
return 0;
}
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include <stdio.h>
#include <string.h>
char* fun1(char*s)
{
int i,n;
char ch;
n=(int)strlen(s);
for(i=0;i<=n/2;i++)
{
ch=s[i];
s[i]=s[n-1-i];
s[n-1-i]=ch;
}
return s;
}
char *fun2(char*s)
{
char *p1,*p2;
char ch;
p1=s;
p2=s+strlen(s)-1;
while(p1<p2)
{
ch=*p1;
*p1=*p2;
*p2=ch;
p1++;
p2--;
}
return s;
}
int main()
{
char str[]="1234567890";
char buf[]="abcdefgh";
printf("原始字符串为%s\n",str);
printf("数组逆序后字符串为:\n");
puts(fun1(str));
printf("原始字符串为%s\n",buf);
printf("指针逆序后字符串为:\n");
puts(fun2(buf));//两次逆序和原来一样
return 0;
}
原始字符串为1234567890
数组逆序后字符串为:
0987564321
原始字符串为abcdefgh
指针逆序后字符串为:
hgfedcba
Press any key to continue
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询