C语言
字符串
1、字符串的三种类型











指针



这里涉及到强制类型转换,通过学习我们得知,Int *类型是定义了Int类型的指针(指针指向地址),而我们要想赋予这个指针一个int类型的常量,正常来说这他们两个的类型是不一样的,但是还c++允许我们进行强制类型转换,(被赋值的类型) 值可以实现不同类型之间的赋值。























结构










静态变量相当于初始化语句,只在第一次执行时发挥作用。
如果前面的static去掉则三次输出结果均为4

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| using namespace std; char * STRtok(char * p,char * sep){ static char * start; if(p) start=p; for(;*start&&strchr(sep,*start);++start); if (*start==0) return NULL; char * q=start; for(;*start&&!strchr(sep,*start);++start); if(*start){ *start=0; ++start; } return q; } int main(){ char str[]="this is,a_test"; char * p=STRtok(str," ,_"); while(p!=NULL){ cout<<p<<endl; p=STRtok(NULL," ,_"); } return 0; }
|
标识符





简单排序
选择排序

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| #include <iostream> #include <cstring> using namespace std; void selectmin(int a[],int size){ for(int i=0;i<size-1;++i){ int min=i; for(int j=i+1;j<size;++j){ if(a[j]<a[min]) min=j; } int tmp; tmp=a[i]; a[i]=a[min]; a[min]=tmp; } } int main(){ int num[10]={10,9,8,7,6,5,4,3,2,1}; selectmin(num,10); for(int i=0;i<10;++i){ printf("%d ",num[i]); } }
|

插入排序

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| #include <iostream> #include <cstring> using namespace std; void insertsort(int a[],int size){ for(int i=1;i<size;++i){ for(int j=0;j<i;++j) if(a[j]<a[i]){ int tmp=a[i]; for(int k=i;k>j;--k) a[k]=a[k-1]; a[j]=tmp; break; } } }
int main(){ int num[10]={100,2,3,24,45,26,70,18,9,10}; insertsort(num,10); for(int i=0;i<10;++i){ printf("%d ",num[i]); } }
|

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| #include <iostream> #include <cstring> using namespace std; void bubblesort(int a[],int size){ for(int i=size-1;i>0;--i){ for(int j=0;j<i;++j){ if(a[j]>a[j+1]){ int tmp=a[j]; a[j]=a[j+1]; a[j+1]=tmp; } } } }
int main(){ int num[10]={100,2,3,24,45,26,70,18,9,10}; bubblesort(num,10); for(int i=0;i<10;++i){ printf("%d ",num[i]); } }
|






文件读写









1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| #include <iostream> #include <cstring> #include <cstdio> #include <algorithm> using namespace std; int a[1000]; int main(){ FILE * fpin=fopen("in.txt","r"); if(fpin==NULL) return 0; FILE * fpout=fopen("out.txt","w"); int n=0; while(fscanf(fpin,"%d ",a+n)!=EOF) ++n; fclose(fpin); sort(a,a+n); for(int i=0;i<n;++i) fprintf(fpout,"%d ",a[i]); fclose(fpout); return 0; }
|


1 2 3 4 5 6 7 8 9 10 11 12 13
| #include <iostream> #include <cstring> #include <cstdio> #include <algorithm> using namespace std; int main(){ char str[1000]; FILE * fp=fopen("text.txt","r"); while(fgets(str,990,fp)) printf(str); fclose(fp); return 0; }
|






fgetc的结果总是值为正的整形变量

