给定字符串“Hello World”,反序输出“dlroW olleH”。 1、char * strReversed_1(char * dest, char * str)
char * strReversed_1(char * dest, char * str){ unsigned int i, j; if (dest == NULL || str == NULL) { return NULL; } unsigned int len = strlen(str); for (i = 0, j = 0; i < len; i++, j++) { dest[j] = str[len - i - 1]; } dest[j] = '/0'; return dest;}2、char * strReversed_2(char * str)
char * strReversed_2(char * str){ unsigned int i; if (str == NULL) { return NULL; } unsigned int len = strlen(str); char tem; for (i = 0; i < len / 2; i++) { tem = str[i]; str[i] = str[len - i - 1]; str[len - i - 1] = tem; } return str;}3、char * strReversed_3(char * str)
char * strReversed_3(char * str){ unsigned int i; if (str == NULL) { return NULL; } unsigned int len = strlen(str); char * temp = str + len - 1; char tem; for (i = 0; i < len / 2; i++) { tem = *str; *str = *temp; *temp = tem; *str++; *temp--; } return str - len / 2;}验证程序:
#include <stdio.h>#include <string.h>#define MAX_LEN 64int main(){ char strScr[MAX_LEN] = "Hello World"; char strDest[MAX_LEN]; PRintf("%s/n", strReversed_1(strDest, strScr)); printf("%s/n", strReversed_2(strDest)); printf("%s/n", strReversed_3(strDest)); return 0;}输出结果:
新闻热点
疑难解答