本文主要是介绍c语言如何颠倒字符串顺序,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
#include<stdio.h>
int main()
{void over(char *p);char a[]="program";char *p;p=a;over(p);printf("颠倒后的内容是:%s\n",a);return 0;
}void over(char *p)
{char t;int i;for(i=0;i<3;i++){t=*(p+i);*(p+i)=*(p+6-i);*(p+6-i)=t;}
}
代码分析
在main函数中
第一行,void over(char *p)表示的是函数递归,函数递归是用在主函数在前,定义函数在后的情况。
第二行,定义了一个数组
第三行,定义一个指针变量p
第四行,指针变量p被引用到数组a的第一个地址
第五行,执行over函数
第六行是打印出内容
看一下定义的over函数的内容
char t:定义一个字符型变量t
int i 定义一个整数型变量i
下面是一个for循环
for(i=0;i<3;i++)
{
t=*(p+i);
*(p+i)=*(p+6-i);
*(p+6-i)=t;
}
假设i=0,符合i<3的条件,t=*(p+i)=*(0+0)=*1,这是引用数组第一个元素值,*(p+i)=*(p+6-i)表示*(0+0)=*(0+6-0),第7个元素和第一个元素的内容互换
*(p+6-i)=t,是把第7个元素内容重新赋值t
然后执行i=1的循环
t先赋值引用第二个数组元素,第二个数组元素和第六个元素互换,第六个元素再赋值给t,以此循环下去
这篇关于c语言如何颠倒字符串顺序的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!