开始重拾C语言,以下指针代码看了一大会...
#include
void change(char *point);
int main()
{
char str[80]; /*定义一个字符数组*/
char *p; /*定义字符指针,分别表示转换前、后字符串的首地址*/
p = str; /*p指向字符串*/
printf("请输入一个字符串:\n");
gets(p); /*输入字符串*/
change(p); /*参数p告知函数要处理的字符串首地址*/
printf("转换后的字符串是:\n");
puts(p);
return 0;
}
/*函数定义部分*/
void change(char *point)
{
char *q,*old; /*定义两个字符指针,分别存放临时字符串和原字符串的首地址*/
char max; /*定义一个字符变量,存放字符串中的最大字符*/
ld = point; /*首先保存原字符串的首地址*/
max = *point; /*先设第一个字符为最大字符*/
while (*point!='\0') /*在字符串中求最大字符*/
{
if (max<*point) /*求最大字符*/
{
max = *point;
q = point; /*q指针记录最大字符的位置*/
}
point++;
}
while (q>old) /*将最大字符前的字符后移一个字符位置*/
{
*q = *(q-1); /*后移字符*/
q--;
}
*old = max; /*将首字符变为最大字符*/
printf("\n字符串中最大的字符是:%c\n",max);
}