user-0 提问:  请大神解答把输入的字符串 前后颠倒位置的程序

回复:
user: user-1
content: 引用 10 楼 qq_18888869的回复:[quote=引用 6 楼 u011133403 的回复:] 主要有两处问题，已注释。代码如下，望采纳，  #include<stdio.h> #include<string.h>  char *reverse(char*str);  int main() { 	char *str; 	char reservestr[256]; 	str = reservestr; 	printf("reverse string\n"); 	gets(str);  //str 你并没有分配内存，屏幕输入的字符串无处安放 	str=reverse(str); 	printf("reversed string\n"); 	puts(str);  	return 0; }  char*reverse(char*str) { 	int n; 	char temp,*pf,*pt;  	n=strlen(str); //这边应该使用strlen()获得字符串长度 	//n=sizeof(str)-1; 	for(pf=str,pt=&str[n-1];pf<pt;pf++,pt--) 	{ 		temp=*pf; 		*pf=*pt; 		*pt=temp; 	} 	return str; }   char reservestr[256]; 	str = reservestr;这个是用来分派地址的吗 谢谢你 [/quote] 其实就是使用栈预先申请好存放你输入字符串的内存，当然也可以用malloc() 为指针str申请动态内存。

user: user-0
content: 引用 6 楼 u011133403 的回复:主要有两处问题，已注释。代码如下，望采纳，  #include<stdio.h> #include<string.h>  char *reverse(char*str);  int main() { 	char *str; 	char reservestr[256]; 	str = reservestr; 	printf("reverse string\n"); 	gets(str);  //str 你并没有分配内存，屏幕输入的字符串无处安放 	str=reverse(str); 	printf("reversed string\n"); 	puts(str);  	return 0; }  char*reverse(char*str) { 	int n; 	char temp,*pf,*pt;  	n=strlen(str); //这边应该使用strlen()获得字符串长度 	//n=sizeof(str)-1; 	for(pf=str,pt=&str[n-1];pf<pt;pf++,pt--) 	{ 		temp=*pf; 		*pf=*pt; 		*pt=temp; 	} 	return str; }   char reservestr[256]; 	str = reservestr;这个是用来分派地址的吗 谢谢你

user: user-2
content: #include<stdio.h> #include<string.h>   void zhuan(char *p);   int main(void) {     char str[80];     puts("a sting:");     gets(str);     zhuan(str);     puts(str);     return 0; } void zhuan(char *p) { 	int i,j,n;char temp; 	char *a=p; 	n=strlen(p)-1; 	for(i=n,j=0;i>=n/2&&j<=n/2;i--,j++) 	{ 		temp=*(p+i); 		*(p+i)=*(p+j); 		*(p+j)=temp; 	} }

user: user-3
content: #include <stdio.h> #include <stdlib.h>  char *reverse(char *str);   int main() {     char str[256] = { 0 };     printf("reverse string\n");     gets(str);     reverse(str);     printf("reversed string\n");     puts(str);       return 0; }   char *reverse(char *str) {     int i = 0;     int l = strlen(str);     int n = l >> 1; // l / 2     while (i < n) {         int t = i++;         int s = l - i;         char c = str[t];         str[t] = str[s];         str[s] = c;     }     return str; }引用 5 楼 paschen 的回复:qq_18888869  这个QQ号好啊然而这并不是QQ号，或许只是CSDN给QQ登录的用户分配的一个默认id。你没发现所有QQ登录的用户都是“qq_8个数字”结尾吗？为什么都是8位的？明显不是QQ号。

user: user-1
content: 主要有两处问题，已注释。代码如下，望采纳，  #include<stdio.h> #include<string.h>  char *reverse(char*str);  int main() { 	char *str; 	char reservestr[256]; 	str = reservestr; 	printf("reverse string\n"); 	gets(str);  //str 你并没有分配内存，屏幕输入的字符串无处安放 	str=reverse(str); 	printf("reversed string\n"); 	puts(str);  	return 0; }  char*reverse(char*str) { 	int n; 	char temp,*pf,*pt;  	n=strlen(str); //这边应该使用strlen()获得字符串长度 	//n=sizeof(str)-1; 	for(pf=str,pt=&str[n-1];pf<pt;pf++,pt--) 	{ 		temp=*pf; 		*pf=*pt; 		*pt=temp; 	} 	return str; }

user: user-4
content: 还是把这句蹩脚的str=reverse(str);也换了吧 reverse(str );

user: user-5
content: qq_18888869  这个QQ号好啊

user: user-6
content: #include<stdio.h> #include<string.h>  char *reverse(char*str ,int n);  int main() {     char *str; 	int n;     printf("reverse string\n"); 	str=new char[100];     gets(str); 	n=strlen(str);     str=reverse(str,n);     printf("reversed string");     puts(str); 	     return 0; }   char*reverse(char*str, int n) {      char temp,*pf,*pt;       //n=strlen(str);     /*n=sizeof(str)-1;     for(pf=str,pt=&str[n-1];pf<pt;pf++,pt--)     {         temp=*pf;         *pf=*pt;         *pt=temp;     }     return str;*/  	for(pf=str,pt=&str[n-1];pf<pt;pf++,pt--)     {         temp=*pf;         *pf=*pt;         *pt=temp;     }     return str;  } 可以了

user: user-7
content: int main() {     char  str[100];

user: user-8
content: 上代码！  #include<iostream> #include<string> void swap(char &a, char&b) { 	char c; 	c = a; 	a = b; 	b = c;	 } int main() { 	std::string s1 = "abcdefg"; 	for(int i = 0, j = s1.size() - 1; i < s1.size() / 2; i++ , j--) 	{ 		swap(s1[i],s1[j]); 	}  	std::cout<<s1<< std::endl; 	system("pause"); 	return 0; }

user: user-5
content: str只是个指针，没有分配内存啊！