2020-05-30 class17

1.冒泡排序
2.选择排序

以上这两个程序考的可能性很大

3.斐波拉比数列,前n项

  • 3.1之前用递归写过

这次用数组来写

//fibonacci序列的前n项 放入 数组

void Fib(int a[],int n)
{
    int i;

    a[0]=a[1]=1;

    for(i=2;i

==============================================

字符串

1.字符在程序中用数组来存储----字符数组
2.ASCII码值为零: '\0' ; 不是 '0';
3.已'\0'作为结束标记的字符数组,就不需要知道数组有多长

int main()
{
 
   char s1[100] = {'a','b','c','\0'};

   s[0] = 'p';
   puts(s1);       //输出的pbc


 //使用字符串常量对字符数组初始化
  char s2[100] = "abc";  
  
  sizeof(s2) //字符串占多少字节和字符串长度不同


  //不能这样赋值:
  //char s[100];
  //s = {...}

  char s[100];     //定义了字符数组s
  s[0] = 'a';
  s[1] = 'b';
  s[2] = 'c';
  s[3] = '\0';        //放入结束标记

  s[3] = 0;           //放入整型的0,也可以


  //puts 库函数,只需要传入数组名,不需要传入长度了
  puts(s);    //非接触结束标记的长度,即为3

  return 0;
}

判断字符串长度

char s[]="abc";

sizeof(s)    //字符串长度为4,因为有结束标记

strlen(s);    //3,不包含结束标记

//改变s[1] = '\0';

char s[]="abc";

s[1] = '\0';

sizeof(s) ;   //4,长度不变


strlen(s);    //1,到结束标记之前有多长,a \0 c,到第二个结束

puts(s); //输出a

字符串比较

1.字符串不属于基本数据类型

2.不能用关系运算符比较字符串

  • 不能 :if(str1>str2) ❌

3.使用strcmp(str1,str2)比较

返回值 --该函数返回值如下:

  • 如果返回值小于 0,则表示 str1 小于 str2。
  • 如果返回值大于 0,则表示 str1 大于 str2。
  • 如果返回值等于 0,则表示 str1 等于 str2。

4.不能用 = 运算符 赋值

  • s2 = s1; ❌

应该使用strcpy()函数

5.需要掌握的库函数

puts
gets
strlen
strcmp
strcpy

  int main()
{
  //输入n个字符串,以长度为0的结束(直接按回车)
 //输出其中最大的
  char max[100]=""; //存储max字符串
  char s[100];

  gets(s);

  while(strlen(s)>0)
  {
      if( strcmp(s,max)>0 )
          strcpy(max,s);
      gets(s);
  }

  puts(max);
}

//比较字符串,输出最大值字符串

void maxString(int n)
{
   int i;
   char max[1000]="",s[1000];

  for(i=0;i0)
          strcpy(max,s);
  }
  puts(max);
}

//strcpy函数使用

int main()
{
    char d[100]="abcdef";

    strcpy(d,"hellow");

    puts(d);
}

求字符长度

你可能感兴趣的:(2020-05-30 class17)