嵌入式学习(Day7)

输入一组字符串将他们前后交换

 #include<stdio.h>                           
 int main()
{
     char str[32] = {0};
     int i = 0, a = 0,tmp = 0;
     gets(str);
     a = strlen(str);
     for (i = 0; i < a/2; i++)
     {
         tmp = str[i];
         str[i] = str[a-1-i];
         str[a-1-i] = tmp;
     }
     printf("strlen=%ld\n",strlen(str));
     puts(str);
     return 0;
  }
    

   

简单冒泡排序

#include<stdio.h>
int main(void)
{
		int a[5] = {21,32,54,12,76};
		int i = 0, j = 0;
		int len = sizeof(a) / sizeof(a[0]);
		int tmp = 0;
		for (j = 0; j<len-1; j++)
		{
			for(i =0; i< len-1-j; i++)
			{
				if (a[i] > a[i+1])
{
	tmp = a[i];
	a[i] = a[i+1];
	a[i+1] = tmp;
}
}
}
		for (i = 0 ; i < len; i++ ) 
{printf(“%d”)}
return 0;
}

不用strlen计算字符串长度

  #include<stdio.h>
  int main()
  {
      char str[32] = {0};
      int i = 0, a = 0;
      gets(str);
      for (i = 0; str[i] != '\0'; i++)//while (str[i] != '\0')
      {                               //{
                                      //  a++;
          a++;                        //  i++;
      }                               //}                                                                                   
  
      printf("字符串长度=%d\n",a);
      puts(str);
      return 0;
  }

输入一串字符根据他们的ascii码来进行排序输出

 #include<stdio.h>
 #include<string.h>
 int main()
 {
     char str[32] = {0};
     int i = 0, j = 0;
     int temp = 0;
     gets(str);
     int l = strlen(str);
     puts(str);
     for(j = 0; j < l-1; j++)
     {
         for(i = 0; i < l-1-j; i++)
         {
             if (str[i]>str[i+1])
             {
                 temp = str[i];
                 str[i] = str[i+1];
                 str[i+1] = temp;                                                                                          
             }
         }
 
     }
     puts(str);
     return 0;
 }

二维数组

1.二维数组:

    1.二维整形数组:

        1.定义:

            数组类型 数组名[行数][列数];

            行数和列数:整形常量或整形常量表达式,不能为变量或变量表达式

            int a[2][3];

            1    2    3

            4    5    6

        2.元素访问:

            数组名[行下标][列下表]

      

            下标:可以是常量或者变量或者表达式

        3.元素初始化:

            初始化 != 赋值

            1.全部初始化:

                int a[2][3] = {1, 2, 3, 4, 5, 6};

                int a[2][3] = {{1, 2, 3}, {4, 5, 6}};

            2.局部初始化:

                int a[2][3] = {1, 2, 3, 4};

                int a[2][3] = {{1, 2}, {3}};

                int a[2][3] = {0};

                int a[2][3] = {{0}};

            3.默认初始化:

                行能省略,列不能省略

                int a[][3] = {{1, 2, 3}, {4, 5, 6}};

                int a[][3] = {1, 2, 3, 4};

                int a[][3] = {1, 2, 3};

                int a[][3] = {{1, 2}, {3}};

                int a[][3] = {0};

        4.二维数组的存储:

            int a[2][3];

            数组所占空间大小 = 数据类型所占空间大小 * 行数 * 列数

            1.连续性

                数组存放空间连续

            2.有序性

                逐行从左向右存储

            sizeof(a) / sizeof(a[0][0]);

        结论:二维数组可以看成是由一维数组构成的一维数组

    2.多维数组:

        N维数组可以理解成是由N-1维数组构成的一维数组

2.字符型数组:

    "hello world"

    1.使用场景:

        C语言没有字符串类型,也无法定义字符串变量,只能通过字符型数组,每个元素存放一个字符,最终存放字符串

    2.字符型数组的定义:

        数据类型 数组名[元素个数];

        "hello world"

        char str[12];

        注意:

            1.元素个数必须为常量或常量表达式,不能为变量或变量表达式

            2.元素个数必须能够容纳下所有字符(包括\0)

        字符型数组和字符串区别:

            1.字符型数组可以存放字符,不一定包含\0

            2.字符串最末尾一定要有\0

    3.字符型数组的初始化:

        初始化 != 赋值

        1.全部初始化:

        char str[6] = {'h', 'e', 'l', 'l', 'o', '\0'};

        char str[6] = {"hello"};

        char str[6] = "hello";

        2.局部初始化:

        char str[6] = {'h', 'e', 'l', '\0'};            //没有给定初值的元素,值为0值('\0')

        char str[6] = {"hel"};

        char str[6] = "hel";

        char str[6] = {0};                             

        3.默认初始化:

        char str[] = {'h', 'e', 'l', 'l', 'o', '\0'};

        char str[] = {"hello"};

        char str[] = "hello";

        char str[] = {'h', 'e', 'l', 'l', 'o'};

        char str[32] = {0};

        str = "hello world";                            //错

        str[32] = "hello world";                        //错

    4.数组的存储:

        字符型数组所占字节 不等于 元素个数

        1.连续性

        2.有序性

    5.字符串的输入和输出:

        printf("str = %s\n", str);

        puts(str);

        scanf("%s", str);

        gets(str);

    6.字符串常见的操作函数:

        1.strlen:获得字符串的长度(字符串开头到离开头最近的\0之 间的字符个数,不包含\0字符)

            "hello world": 长度 11

            注意:

                1.strlen获得字符串的长度

                2.sizeof获得字符串或数组在内存中所占字节数

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值