使用指针方法实现字符串逆序存放后再输出;用指针方法编写一函数,实现两个字符串的比较

使用指针方法实现字符串逆序存放后再输出

编写程序:从键盘任意输入一个字符串,输出该字符串。然后,将该字符串逆序存放后再输出,要求用字符指针完成。(提示:逆序存放的函数接口:void invstr(char *s))

#include
#include
void invstr(char *s)
{
     
	char b;
	int len;
	len=strlen(s); /*获取该字符串的长度*/ 
	for(int i=0;i<len/2;i++){
      /*该循环的目的是每次将字符串的头和尾换一下位置*/ 
		b=*(s+i); /*字符串的第i个元素的地址暂时放到b里*/ 
		*(s+i)=*(s+len-1-i); /*将字符串的倒数第i个元素换到第i个元素*/ 
		*(s+len-1-i)=b; /*再将b存放的地址放回倒数第i个元素*/ 
	}	
}
int main()
{
     
	char a[1000];
	gets(a); /*输入字符串*/ 
	printf("%s\n",a); /*正序输出一次*/ 
	invstr(a); /*运行函数*/ 
	printf("%s",a); /*逆序输出*/ 
 } 

利用指针编程,用指针方法编写一函数,实现两个字符串的比较。编程点拨:即自己编写一个strcmp函数:strcmp(s1,s2),如果s1= s2,返回值为0,如果s1≠s2, 返回它们二者第一个不同字符的ASCII码差值(如"BOY"与"BAD", 第二个字母不同,"O"与"A"之差为79-65=14)。如果要s1>s2,则输出正值,如果s1

#include
#include
void strcmp(char *s1,char *s2)
{
     
	int len,i=0,sum=0,lenmax;
	lenmax = strlen(s1);
	len = strlen(s2); 
	if(lenmax < len){
     
		lenmax = len;
	}
	for(i=0;i<lenmax and sum==0;i++){
     
		if(*(s1+i) > *(s1+i)){
     
			sum = *(s1+i) - *(s2+i);
		}
		if(*(s1+i) < *(s2+i)){
     
           sum = ( - (*(s1+i) - *(s2+i)));
		}
	}
	printf("%d",sum);
}
int main()
{
     
	char s1[1000],s2[1000];
	gets(s1);
	gets(s2);
	strcmp(s1,s2);
 } 

你可能感兴趣的:(笔记,c语言,字符串,指针)