#include<stdio.h>
#include<conio.h>
void reverse(char* s1)
{
int n=0;
while(s1[++n]); // Узнаем длину строки.
for(int i=0;i<n/2;i++)
{
s1^=s1[n-i-1]; // Меняем
s1[n-i-1]^=s1; // местами
s1^=s1[n-i-1]; // символы
}
}
void main()
{
char s1[]="123456789";
clrscr();
printf("%s\n",s1);
reverse(s1);
printf("%s\n",s1);
getch();
}
Реверс(строки)
Результат возвращает y98765432
а нужно 987654321
ВОт код программы:
#include <stdio.h>
#include <conio.h>
#include <string.h>
float reverse(char* s1)
{
char* st;
int i,j,l1=strlen(s1);
for(j=l1,i=0;j>0,i>l1;i++,j--)
st[j]=s1;
printf("\n %s",st);
for(i=0;i<l1;i++)
s1=st;
return 0;
}
int main()
{
char *s1="123456789";
clrscr();
reverse(s1);
printf("\n %s",s1);
getch();
return 0;
}
Как бы сделал я...
Thank you!