(1)输入abc,输出cba
#include<stdio.h>
void fun(char *p,int m);
int main()
{
char a[]="abc";
char *p=a;
printf("%s\n",a);//输出原字符串
fun(p,3);
printf("%s\n",a);//输出逆序后字符串
return 0;
}
void fun(char *p,int m)
{
int i;
char temp=p[0];
p[0]=p[2];
p[2]=temp;
}
问题:程序固定了输出的字符串及长度,不够实用
(2)键盘输入字符串:可以从键盘输入,包含空格
#include<stdio.h>
#include<string.h>
void display(char* p,int n);
int main()
{
char a[100],n;
printf("请输入字符串:");
gets(a);
char *p=a;
n=strlen(a);
display(p,n);
return 0;
}
void display(char *p,int n)//从后往前输出
{
int i;
printf("逆序字符串:");
for(i=n-1;i>=0;i--)
{
printf("%c",&p[i]);//输出逆序字符串
}
printf("\n");
}
(2)键盘输入字符串:可以从键盘输入,包含空格
#include <stdio.h>
#include <string.h>
void strrev(char *s,int n) //n = strlen(s)-1
{
int i;
char tmp;
for(i = 0;i < n;i++,n--) //次数为n/2
{
tmp = s[i];
s[i] = s[n];
s[n] = tmp;
}
}
int main()
{
char s[100];
printf("please input s:\n");
gets(s);
int n = strlen(s)-1;
strrev(s,n);
printf("mystring:\n%s\n",s);
return 0;
}