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);//abcd
printf("len = %d\n", len);//4
strcpy(s, d);//efg
strcat(s, d);//efgefg
len = strlen(s);
printf("s = %s\n", s);
printf("len = %d\n", len);//6
printf("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
equal
Input: 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:17
res: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:41
res:43 res:44 res:45 res:47 res:48 res:49 res:50
*/
#include <stdio.h>
#define LN 50
#define SN 10
int 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