《C和指针》章节后编程练习解答参考——6.3

《C和指针》——6.3

题目:

  编写一个函数,把参数字符串中的字符反向排列。

函数原型:

  void reverse_string(char *string);

要求:

  使用指针而不是数组下标

  不要使用任何C函数库中用于操纵字符串的函数

  不要声明一个局部数组来临时存储参数字符串

解答代码:

#include <stdio.h>

void reverse_string(char *string)
{
int i, n=; while (*(string+n) != '\0') //计算字符串中字符的个数
n++;
n--; //字符个数n作为索引号时要减1,即从0到n-1
if (n > ) //字符个数小于等于1时没有必要反转
{
for (i=; i<=(n/); i++)
{
if (i != (n-i))
{
char p; //字符内容交换
p = *(string+i);
*(string+i) = *(string+n-i);
*(string+n-i) = p;
}
}
}
} int main()
{
char source[] = "ABCDEFGH"; printf("Before reverse:\n%s\n", source);
reverse_string(source);
printf("After reverse:\n%s\n", source); getchar();
return ;
}

注:

  1、先计算字符串中非'\0'字符的个数

  2、首位字符轮流交换

上一篇:Android 学习笔记四:创建工具栏按钮


下一篇:android 学习笔记四:控件