94

94 date:2021.2.18
在这里插入图片描述要点: 字符串连接函数

详细代码如下:

#include <stdio.h>
void  fun( char *a )
{
    
    
	/*
		analyse:
		
		遍历前导*  -> 放入数组  ->放入字符串尾部
	*/

	int i = 0, n = 0;
	char *p;  
	p = a; 	//定义一个指针并指向字符串的首地址
	while(*p == '*')  //利用循环找出字符串的前导*号的个数
	{
    
    
		n++;
		p++;
	}
	while(*p)	//利用循环将剩余的字符拷贝到另外一个字符串中
	{
    
    
		a[i] = *p;
		i++;
		p++;
	}
	while(n != 0)  
	{
    
    
		a[i] = '*';  //在字符串末尾接上n个*
		i++;
		n--;
	}
	a[i] = '\0';

	/*  error:
	int i,j =0,sum = 0;
	for(i = 0; a[i] == '*'; i++) //取出前导*
	{
		a[sum]= a[i];
		sum++;
	}

	for(i = sum+1; a[i] != '\0'; i++)  //取出从第一个字母开始到字符串末尾
	{
		a[j] = a[i];
		j++;
	}

	a[j] += a[sum];
	*a = a[j];
	*/
	
	/* CHANGE RIGHT:
	int i,j =0,sum = 0;
	for(i = 0; a[i] == '*'; i++) //取出前导*
	{
		a[sum]= a[i];
		sum++;
	}

	for(i = sum; a[i] != '\0'; i++)  //取出从第一个字母开始到字符串末尾
	{
		a[j] = a[i];
		j++;
	}
	
	while(sum != 0)
	{
		a[j] = '*';
		j++;
		sum--;
	}
	a[j] = '\0';
	*/
}

void main()
{
    
      char  s[81];  int  n=0; void NONO ();
   printf("Enter a string:\n");gets(s);
   fun( s );
   printf("The string after moveing:\n");puts(s);
   NONO();
}

猜你喜欢

转载自blog.csdn.net/weixin_44856544/article/details/113850906
94
L94