79!双f

79 date:2021.2.24
在这里插入图片描述

要点:

详细代码如下:

#include    <stdio.h>
#include    <string.h>
#define    M    5
#define    N    20
void fun(char  (*ss)[N])
{
    
      int  i, j, n, len=0;
 for(i=0; i<M; i++)
   {
    
      n=strlen(ss[i]);
      if(i==0) len=n;
      if(len<n)len=n;
   }
   for(i=0; i<M; i++) {
    
    
/**********found**********/
      n=strlen(ss[i]);    //strlen()不包括串尾的'\0',用于计算每一个字符串的长度
      for(j=0; j<len-n; j++)
/**********found**********/
        ss[i][n+j]='*';  //要求在字符串右边用字符*补齐,因而填n+j
/**********found**********/
      ss[i][n+j+0]='\0';  // ss[i][len]是最后的字符应以'\0'结束,所以填0
  }
}
void main()
{
    
       char  ss[M][N]={
    
    "shanghai","guangzhou","beijing","tianjing","cchongqing"};
    int  i;
    printf("The original strings are :\n");
    for(i=0; i<M; i++)  printf("%s\n",ss[i]);
    printf("\n");
    fun(ss);
    printf("The result is :\n");
    for(i=0; i<M; i++)  printf("%s\n",ss[i]);
}


在这里插入图片描述

要点:
空格不是’\0’ 而是‘ ’
toupper()函数

详细代码如下:

#include  <stdlib.h>
#include  <string.h>
#include  <conio.h>
#include  <ctype.h>
#include  <stdio.h>
void fun(char *p)
{
    
    
  int k=0;
  for ( ;*p;p++)
     if (k)
        {
    
    
/*************found**************/
         if (*p==' ')    //对指针的理解,当引用指针指向元素时,应使用指针运算符*号
           {
    
    
            k=0;
/*************found**************/
            *(p-1)=toupper( *(p-1));   //p指向空格时,将前面的字符转换成大写
           }
        }
     else
        k=1;
}
void main()
{
    
    char  chrstr[64];
 int d;
 system("CLS");    
 printf("\nPlease enter an English sentence within 63 letters: ");
 gets(chrstr);
 d=strlen(chrstr);    
 chrstr[d]=' ';
 chrstr[d+1]=0;
 printf("\nBofore changing:\n  %s",chrstr);
 fun(chrstr);
 printf("\nAfter changing:\n  %s",chrstr);
}

在这里插入图片描述

要点:
双重for循环
交换

详细代码如下:

#include <stdio.h>
#include <ctype.h>
#include <string.h>

void fun(char *s,int num)
{
    
    
	/*
		analyse:

		
	*/

	char ch;

	int i,j;

	for(i = 1; i < 6; i++)  //双重for循环没看懂,又好像看懂了,害……
		for(j = i+1; j < 6; j++)
		{
    
    
			if(*(s+i) < *(s+j))
			{
    
    
				ch = *(s+j);
				*(s+j) = *(s+i);
				*(s+i) = ch;
			}
		}

	/* error:
	int i,j,big = s[1],range = strlen(s);


	for( i = 0; i < range-1; i++)
	{
		if(s[i+1] > big)
			big = s[i+1];

			

	}

	for(j =0; j<range; j++)
			{
				
			}
	*/

}

void main()
{
    
    
  void NONO( );
  char s[10];
  printf("输入7个字符的字符串:");
  gets(s);
  fun(s,7);
  printf("\n%s",s);
  NONO();
}

猜你喜欢

转载自blog.csdn.net/weixin_44856544/article/details/114022822
79