在没有c中任何预定义函数的情况下反转字符串



我使用的是下面的代码,我不知道我做错了什么。

#include <stdio.h>
void main()
{
char a[5];
char ptr[5] = "hello";
int i,j,k=0;
for(i=0;ptr[i] !=''&&ptr[i]!=' ';i++){}
k=i;
for(j=0;j<=i;j++)
{
a[j] = ptr[k];
printf("%c %c %d %d %dn",a[j],ptr[k],i,j,k);
k--;
}
printf("%s %s",a,ptr);
}

输出:

5 0 5
o o 5 1 4
l l 5 2 3
l l 5 3 2
e e 5 4 1
h h 5 5 0
hello

我想这就是您想要的。

#include <stdio.h>
int main()
{
char a[6];
char ptr[6] = "hello";
int i,j,k=0;
for(i=0;ptr[i] !=''&&ptr[i]!=' ';i++){}
k= i - 1;
for(j=0;j<i;j++)
{
a[j] = ptr[k];
printf("%c %c %d %d %dn",a[j],ptr[k],i,j,k);
k--;
}
printf("%s %s",a,ptr);
}

我已经编辑了输入字符串长度未定义的答案。看看:

#include <stdio.h>
#include<string.h>
void main(){
char a[10];
char ptr[10];
scanf("%s", ptr);
for(int i = 0, j = strlen(ptr)-1; j != -1; i++, j--){
a[i] = ptr[j];
}
printf("%s", a);
}

相关内容

最新更新