C程序设计 (第四版) 谭浩强 习题7.5
习题 7.5 写一个函数,使输入的一个字符串按反序存放,在主函数中输入和输出字符串。
IDE工具:VS2010
Note: 使用不同的IDE工具可能有部分差异。
代码块
方法1: 使用数组,函数的模块化设计
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void reverse(char str[]){
int len = strlen(str);
char temp;
for(int i = 0, j = len - 1; i <= j; i++, j--){
temp = str[i];
str[i] = str[j];
str[j] = temp;
}
}
int main(){
char str[80];
printf("Enter string: ");
gets(str);
reverse(str);
printf("New string: %s\n", str);
system("pause");
return 0;
}
方法2:使用指针、动态分配内存
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define LEN 80
void initialStr(char **str, int n){
*str = (char*)malloc(n * sizeof(char));
}
void inputStr(char *str, int n){
printf("Enter string: ");
gets(str);
}
void reverse(char str[]){
int len = strlen(str);
char temp;
for(int i = 0, j = len - 1; i <= j; i++, j--){
temp = str[i];
str[i] = str[j];
str[j] = temp;
}
}
void outputStr(char *str){
printf("New string: %s\n", str);
}
int main(){
char *str = NULL;
initialStr(&str, LEN);
inputStr(str, LEN);
reverse(str);
outputStr(str);
free(str);
system("pause");
return 0;
}