C语言笔记第十七课

一、作业内容

1.str1复制10,存放到str3,并输出

int main()
{
char str1[10]="abc";
char str2[10]= "WXYYZabc";
char str3[100];
//char str3[100] = "";//方法1
str3[0] = '\0';//方法2
//strcpy(str3,str1);//方法3
for(int i=0;i<10;i++)
{
strcat(str3,str1);//strcat 的使用前提是str3 是字符串
}
printf("%s\n",str3);
return 0;
}

2.比较str1str2的大小,并输出.

int main()
{
char str1[10]="abc";
char str2[10]="WXYYZabc";
int n=strcmp(str1,str2);
if(n>0)
printf("%s>%s\n",str1,str2);
else if(n<0)
printf("%s<%s\n",str1,str2);
else
printf("%s==%s\n",str1,str2);
return 0;
}
​

 

 下面是字符串比较错误的演示

int main()//字符串比较的错误演示 (字符串不能使用 >,<,=来进行比较)
{
char str1[10] = "abc";
char str2[10] = "WXYYZabc";
char str3[10] = "abc";
if (str1 > str2)
printf("%s > %s\n", str1, str2);
else if (str1 < str2)
printf("%s < %s\n", str1, str2);
else
printf("%s == %s\n", str1, str2);
if (str3 > str2)
printf("%s > %s\n", str3, str2);
else if (str3 < str2)
printf("%s < %s\n", str3, str2);
else
printf("%s == %s\n", str3, str2);
return 0;
}

 3.求出str1str2的长度和占用的字节数.

//sizeof: 内容占用的字节数
//strlen: 求字符串的长度 ( 字符数量不包含 '\0')
int main()
{
char str1[10] = "abc";
char str2[10] = "WXYYZabc";
printf("%d,%d\n",sizeof(str1),strlen(str1)); //10*1, 3
printf("%d,%d\n", sizeof(str2), strlen(str2));//10*1,8
printf("%d\n",sizeof(1));//4, strlen(1);//error
printf("%d\n", sizeof(char));//1, strlen(char);//error
printf("%d\n", sizeof(double));//8,strlen(double);//error
return 0;
}
4. 把从 str2 "YZ" 开始的字符 ( 包括 "YZ") 全部连结到 str1 的后面 , 并把连结的结果复制到 str3 . 如上面的数据则结果为 "abcYZabc".
int main()
{
char str1[10]="abc";
char str2[10]= "WXYYZabc";
char str3[100];
strcpy(str3,str1);
const char *p = strstr(str2,"YZ");
if (p != NULL)
strcat(str3,p);
printf("%s\n",str3);
return 0;
}
5. 输入一行字符,统计其中有多少个单词,单词之间用非字母字符分隔开 . 例如 "abc
adf12df,rt.aewr" 输出 5.

 

int main()
{
char str[] = "abc adf123df,rt.aewr";
int count = 0;//统计单词个数
for (int i = 0; str[i] != '\0'; i++)
{
if (isalpha(str[i]) && !isalpha(str[i + 1]))//当前是字母,后一个不是字母
count++;
}
printf("%d\n",count);
return 0;
}
6. 删除有序数组中的重复项 .

 

//当前值和下一个相同,则不复制(不要它)
//当前值和下一个值不相同,则把当前值复制
int removeDuplicates(int* arr, int numsSize) {
int i;//遍历数组
int j = 0;//当前可以存放数据的下标
for (i = 0; i + 1 < numsSize; i++) { //遍历数组
if (arr[i] != arr[i + 1]) {
arr[j] = arr[i];
j++;
}
}
arr[j++] = arr[i];//arr[j]]=arr[i];j++;
return j;
}

 

二、上课内容

字符串常见函数
下面的函数 C <string.h> 都自带了 , 以后可以直接使用
strcat: 字符串连结
strcmp: 字符串比较
strcpy: 字符串复制
strlen: 字符串长度
strstr: 查找子串
toupper: 把小写字母转大写
tolower: 把大写字母转小写
strlen: 求字符的有效个数 , 不包含 '\0'
sizeof: 求后面内容占用的字节数 . 这个是运算符 .

 #include <graphics.h> // 引用图形库头文件

#include <conio.h>
int main ()
{
initgraph ( 640 , 480 ); // 创建绘图窗口,大小为 640x480 像素
circle ( 200 , 200 , 100 ); // 画圆,圆心 (200, 200) ,半径 100
_getch (); // 按任意键继续
closegraph (); // 关闭绘图窗口
return 0 ;
}

 

制作背景图片
在画图中图一个方格 , 然后填充颜色 , 利用截图工具保存一张大于 (600*600 像素 ) 的图片即可

 

把图片保存后,复制到和源程序在同一个文件夹中.

 

项目中使用的函数  

loadimage:用于从文件中读取图像。加载图片
putimage:显示图片
setlinecolor():设置线条的颜色
line:画线,需要两点坐标
setfillcolor:设置填充颜色
fillcircle:画填充(实心)圆,参数为坐标,半径
GetMouseMsg:获取鼠标消息
outtextxy:在指定位置(坐标)输出字符串
settextcolor:设置字体颜色
settextstyle:设置字体样式
1. 用预定义常量表示颜色
常量 值 颜色
-------- -------- --------
BLACK 0 黑
BLUE 0xAA0000 蓝
GREEN 0x00AA00 绿
CYAN 0xAAAA00 青
RED 0x0000AA 红
MAGENTA 0xAA00AA 紫
BROWN 0x0055AA 棕
LIGHTGRAY 0xAAAAAA 浅灰
DARKGRAY 0x555555 深灰
LIGHTBLUE 0xFF5555 亮蓝
LIGHTGREEN 0x55FF55 亮绿
LIGHTCYAN 0xFFFF55 亮青
LIGHTRED 0x5555FF 亮红
LIGHTMAGENTA 0xFF55FF 亮紫
YELLOW 0x55FFFF 黄
WHITE 0xFFFFFF 白

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值