C语言入门课程学习笔记-6
- 第27课 - 字符数组与字符串(上)
- 第28课 - 字符数组与字符串(下)
- 第29课 - 数组专题练习(上)
- 第30课 - 数组专题练习(下)
本文学习自狄泰软件学院 唐佐林老师的 C语言入门课程,图片全部来源于课程PPT,仅用于个人学习记录
第27课 - 字符数组与字符串(上)
#include <stdio.h>int main()
{char a[] = { 97, 98, 99 };char b[] = { 'D', '.', 'T', '.' };int i = 0;for(i=0; i<sizeof(a); i++)printf("%c", a[i]);printf("\n");for(i=0; i<sizeof(b); i++)printf("%c", b[i]);printf("\n");return 0;
}/*output:
abc
D.T.*/
第28课 - 字符数组与字符串(下)
#include <stdio.h>
#include <string.h>int main()
{char s[10] = "abcd";int size = sizeof(s);int len = strlen(s);printf("size = %d\n", size);printf("len = %d\n", len);return 0;
}/*output:
size = 10
len = 4*/
#include <stdio.h>
#include <string.h>int main()
{char s[10] = "abcd";char d[] = "efg";int len = strlen(s);char in[16] = {0};printf("s = %s\n", s);//abcdprintf("len = %d\n", len);//4strcpy(s, d);//efgstrcat(s, d);//efgefglen = strlen(s);printf("s = %s\n", s);printf("len = %d\n", len);//6printf("Input: ");scanf("%s", in);if( strcmp(s, in) == 0 ){printf("equal\n");}else{printf("non-equal\n");}return 0;
}/*output:
s = abcd
len = 4
s = efgefg
len = 6
Input: efgefg
equalInput: aa
non-equal*/
第29课 - 数组专题练习(上)
D,越界
C
D
20
2 0 -1
#include <stdio.h>
#include <string.h>int main()
{int lights[50]={0};int stu[10];int i,j;for(i=0;i<10;i++){stu[i]=2*i+2;}
// for(i=0;i<50;i++)
// {
// printf("%d %d\t",i,lights[i]);
//
//
// }
// printf("\n");
// for(i=0;i<10;i++)
// {
// printf("%d stu:%d\t",i,stu[i]);
//
//
// }printf("\n");for(i=0;i<50;i++){for(j=0;j<10;j++){if((i+1)%stu[j]==0)lights[i]=!lights[i];}}printf("\n");for(i=0;i<50;i++){// printf("%d %d\t",i,lights[i]);if(lights[i]==0)printf("res:%d\t",i+1);}return 0;
}/*output:
res:1 res:3 res:4 res:5 res:6 res:7 res:9 res:10 res:11 res:12 res:13 res:14 res:15 res:16 res:17res:19 res:20 res:21 res:23 res:25 res:27 res:29 res:31 res:32 res:33 res:35 res:37 res:39 res:41res:43 res:44 res:45 res:47 res:48 res:49 res:50*/
#include <stdio.h>#define LN 50
#define SN 10int main()
{int light[LN] = {0};int student[SN] = {0};int i = 0;int j = 0;for(i=0; i<LN; i++) light[i] = 1; // 1 表示灯的打开状态, 0 表示灯的关闭状态for(i=0; i<SN; i++) student[i] = (i + 1) * 2; // 2, 4, 6, 8, ...for(i=0; i<SN; i++)for(j=0; j<LN; j++)if( (j + 1) % student[i] == 0 ){light[j] = !light[j];}for(i=0; i<LN; i++)if( light[i] )printf("%d ", i + 1);return 0;
}
第30课 - 数组专题练习(下)
#include <stdio.h>
#include <string.h>int main()
{char s[] = "abc\0de\0fg";int size = sizeof(s);int i = 0;int j = 0;while( i < size ){if( s[i] == 0 ){for(j=i+1; j<size; j++){s[j-1] = s[j];}size--;}else{i++;}}printf("s = %s\n", s);return 0;
}/*output:
s = abcdefg*/
#include <stdio.h>
#include <string.h>int main()
{int i = 0;int e = 0;char r[10] = ""; // char r[10] = {0};for(i=0; i<strlen("abcd")+1; i++){e = "abcd"[i];printf("%d ", e);}printf("\n");strcat(r, "abcd");strcat(r, "efghi");printf("r = %s\n", r);return 0;
}/*output:
97 98 99 100 0
r = abcdefghi*/
A wrong 赋值越界
B str2[4]初始化为0元素
A wrong
C
AD
strlen(s)
i<j
j–
10 3
abc