
C语言
buptzy
这个作者很懒,什么都没留下…
展开
-
switch的使用
打印月份#include<stdio.h>#include<stdlib.h>int main(){ int year, mon; while(scanf("%d%d",&year,&mon)!=EOF){ switch(mon){ case 1: case 3: case 5: case 7: case 8: case 10: case ...原创 2018-04-23 10:33:57 · 219 阅读 · 0 评论 -
数组指针的应用
二维数组经过两次偏移找到某一元素,使用的是数组指针,数组指针是一级指针#include<stdlib.h>#include<stdio.h>void print(int b[][4],int row){ int i,j; for(i=0;i<row;i++){ for(j=0;j<sizeof(*b)/sizeof(int);j++){ printf("%...原创 2018-04-30 22:52:29 · 1034 阅读 · 0 评论 -
删除字符串中指定的字符
例如 “abcdaefaghiagkl“ 删除‘a’,以后: “bcdefghigkl”#include<stdio.h>#include<stdlib.h>#include<string.h>int main(){ char c [100]; char d; int i,j; int len; while(fflush(stdin),gets(c)!=NUL...原创 2018-05-01 10:04:17 · 640 阅读 · 0 评论 -
删除一个数组中连续重复出现的元素
例如 1 ,2, 2,2,3,3,3,4,4,5,5,5,6,6,6 -> 1,2,3,4,5,6#include<stdio.h>#include<stdlib.h>#include<string.h>int main(){ char c [100]; char d [100]; int i,j; int len,count; while(fflush(...原创 2018-05-01 10:21:49 · 1823 阅读 · 0 评论 -
字符替换
将 字 符 串 中 的 空 格 替 换 成 “%020” , 例 如 “hello world how ”->”hello%020%020%020world%020%020%020how%020%020%020%020#include<stdio.h>#include<stdlib.h>#include<string.h>int main(){ char ...原创 2018-05-01 10:37:02 · 414 阅读 · 0 评论 -
字母数字分离
1.将包含字符数字的字符串分开,使得分开后的字符串前一部分是数字后一部分是字母。例如“h1ell2o3” ->”123hello”#include<stdio.h>#include<stdlib.h>#include<string.h>int main(){ char c [100]; int i,j; int len,count,temp; while(...原创 2018-05-01 11:10:32 · 1095 阅读 · 0 评论 -
去掉多余空格
将 字 符 串 中 的 相 邻 的 多 余 空 格 去 掉 , 例 如 (空 格 用 下 划 线 表示): ”___hello____world___how_are_you__” ->”hello_world_how_are_you”#include<stdio.h>#include<stdlib.h>#include<string.h>int main(...原创 2018-05-01 15:47:19 · 476 阅读 · 0 评论 -
二级指针
二级指针只服务于一级指针的偏移和传递。1.二级指针传递的使用场景: 主要用于对一级指针的修改 第一,二级指针变量的定义在形参,第二,调用函数中一般不定义二级指针,如果定义,初始化时是一级指针的去地址。 #include<stdio.h>#include<stdlib.h>void change(int **p,int *q){ int i=5; *p=q;}in...原创 2018-05-02 10:19:09 · 578 阅读 · 0 评论 -
结构体
1.注意事项:1.1在声明后一定要叫;,结构体类型声明在主函数之前,工作中一般声明放在头文件中1.2结构体初始化只能在一开始定义,如已经定义了,只能对成员单个进行赋值。1.3通过 结构体变量名.成员名来访问结构体成员1.4输入 使用scanf输入只能是对各成员取地址,而且字符%c不会忽略空格,故要在前面加一个空格,即 %c才能实现正确输入2.初始化、定义、结构体指针#include<s...原创 2018-05-02 16:05:00 · 314 阅读 · 2 评论 -
数组指针和指针数组的区别
1.概念解释: 数组指针:a pointer to an array,即指向数组的指针 指针数组:array of pointers,即用于存储指针的数组,也就是数组元素都是指针2.定义:1.数组指针 int(*p)[n]; ()优先级高,首先说明p是一个指针,指向一个整型的一维数组,这个一维数组的长度是n,也可以说是p的步长。也就是说执行p+1时,p要跨过n个整型数据的长度。 如要将二维数组...原创 2018-04-30 16:33:26 · 194 阅读 · 0 评论 -
字符指针与字符数组的初始化
#include<stdlib.h>#include<stdio.h>int main(){ char *p="hello"; char c[10]="hello"; puts(p); puts(c); c[0]='H'; //p[0]='H';不可修改 puts(c); p="world"; //c[10]="world";无法改变 //c="world&quo原创 2018-04-30 15:41:10 · 3779 阅读 · 0 评论 -
malloc的使用以及堆栈的比较
使用堆空间 malloc 申请空间,需要标注大小,free释放的是指针指向的空间 当不需要再使用申请的内存时,记得释放,并且指针=NULL; 释放后应该把指向这块内存的指针指向NULL,防止程序后面不小心使用了它。 malloc申请的空间其实有两部分,一部分是可用空间,一部分用于记录管理信息。 注意: free时候 指针不能发生偏移, 原因是指针指...原创 2018-04-30 15:27:43 · 1797 阅读 · 0 评论 -
goto语句
goto和lable配合使用,其中linux的内核编写向下跳转常用#include<stdio.h>#include<stdlib.h>int main(){ int i=1; int total=0;lable: total+=i; i++; if(i<=100){ goto lable; } printf("%d\n",total); system("pause...原创 2018-04-23 10:35:29 · 576 阅读 · 1 评论 -
continue
不执行循环下面的语句,返回执行循环#include<stdio.h>#include<stdlib.h>int main(){ int i=1; int total=0; for(i=1;i<=100;i++){ if(1==i%2){ continue; } total+=i; } printf("%d\n",total); system("pause")...原创 2018-04-23 10:36:47 · 256 阅读 · 0 评论 -
大小写转换
大写转小写#include<stdio.h>#include<stdlib.h>int main(){ char c; while((scanf("%c",&c))!=EOF){ printf("%c",c-32); //+32小写转大写 } printf("\n"); system("pause"); return 0;}...原创 2018-04-23 10:57:56 · 1163 阅读 · 0 评论 -
strlen、strcat、strcpy、strcmp的实现
#include<stdio.h>#include<stdlib.h>int mystrlen(char c[]){ int i=0; while(c[i++]!='\0'); return i-1;}int mystrcmp(char b[],char c[]){ int len1,len2,max,i; len1=mystrlen(b); len2=mystrlen(...原创 2018-04-23 15:55:27 · 227 阅读 · 0 评论 -
指针的初始化与值传递
未改变主函数中i的值#include<stdio.h>#include<stdlib.h>void print(float j){ j=10; printf("%d\n",j);}int main(){ float i=5; float *p; printf("%.2f\n",i); p=&i; print(&i); printf("%.2f\n",i); ..原创 2018-04-30 11:14:59 · 232 阅读 · 1 评论 -
指针的偏移与自增自减
#include <stdlib.h>#include <stdio.h>int main(){ int a[3]={2,7,14}; int *p; int i; p=a; i=*p++;//p指向a[1] printf("a[0]=%2di=%2dp=%2d\n",a[0],i,*p);//2,2,8 i=p[0]++; printf("a[0]=%2di=%2dp=%...原创 2018-04-30 11:18:10 · 599 阅读 · 1 评论 -
指针与一维数组
利用指针对数组进行大小写转换,并实现翻转#include<stdlib.h>#include<stdio.h>#include<string.h>void change(char *d){ *d='H'; d[1]='E'; *(d+2)='L'; *(d+3)='L'; *(d+4)='O';}void reverse(char *e){ int i ; fo...原创 2018-04-30 11:34:59 · 262 阅读 · 0 评论 -
单词个数以及格式输出
1. 输入一行字符串(单词和若干空格), 输出该行单词个数。Input:____hello_________world_ how___are___you___\nOutput: 52. 输入一行字符串(单词和若干空格),输出该行单词(每个单词一行)Input:____hello_________world_ how___are___you___\nOutput: hello worl...原创 2018-04-23 17:11:22 · 371 阅读 · 0 评论 -
单词翻转
题目一:输入一个英文句子,翻转句子中单词的顺序,但单词内字啊的顺序不变。为简单起见,标点符号和普通字母一样处理。举例说明例如输入字符串”I am a student. ”,则输出”student. a am I”。解题思路 第一步翻转句子中所有的字符。比如翻转“I am a student. ”中所有的字符得到”.tneduts a m a I”,此时不但翻转了句子中单词的顺序,连单词内的字符顺...原创 2018-04-26 10:38:10 · 573 阅读 · 0 评论