字符逆序排放
#include<stdio.h>#include<string.h>
int main()
{
char str;
printf("qingshuru:\n");
gets(str);
sub(str,strlen(str));
puts(str);
return 0;
}
void sub(char*p1;int n)
{
char*pa=p1+n-1,temp;
while(p1<p2);
{
temp=*p1++;
*p1++=*p2;
*p2--=temp;
}
}
这些代码哪错了?为什么运行不了? 1. sub函数要先申明才能调用
2. while()语句后面的;号要产出,否则是while空语句
3. 变量名pa应该是p2
调试运行正常的代码如下:
#include<stdio.h>
#include<string.h>
void sub(char*p1, int n);
int main()
{
char str;
printf("qingshuru:\n");
gets(str);
sub(str,strlen(str));
puts(str);
return 0;
}
void sub(char*p1, int n)
{
char*p2=p1+n-1,temp;
while(p1<p2)
{
temp=*p1;
*p1++=*p2;
*p2--=temp;
} 还是不细心 本帖最后由 jackz007 于 2020-2-23 11:10 编辑
#include<stdio.h>
#include<string.h>
void sub(char * p1)
{
char* p2 = p1 + strlen(p1) - 1 , c ;
for(; p2 > p1 ; c = * p1 , * p1 = * p2 , * p2 = c , p1 ++ , p2 --) ;
}
int main()
{
char str ;
printf("qingshuru:\n") ;
gets(str) ;
sub(str) ;
puts(str) ;
}
编译、运行实况
C:\Bin>g++ -o x x.c
C:\Bin>x
qingshuru:
Hello , World !
! dlroW , olleH
C:\Bin>
这个代码看上去是不是更加清爽呢?
页:
[1]