`
carolaif
  • 浏览: 70622 次
  • 性别: Icon_minigender_2
  • 来自: 大连
最近访客 更多访客>>
社区版块
存档分类
最新评论
文章列表
4-1  编写函数strrindex(s,t),它返回字符串t在s中最右边出现的位置。如果s中不包含t,则返回-1   #include<stdio.h> #define MAXLINE 100 int getline(char line[], int max); int strrindex(char s[], char t[]); char pattern[] = "abc";//要查找的模式 int main() { char line[MAXLINE]; int found = 0; while(getline(lin ...
P57 #include <stdio.h> #define MAXLINE 1000 /* maximum input line length */ int getline(char line[], int max); int strindex(char source[], char searchfor[]); char pattern[] = "ould"; /* pattern to search for */ /* find all lines matching pattern */ int main() { char li ...
/* trim: remove trailing blanks, tabs, newlines */ int trim(char s[]) { int n; for (n = strlen(s)-1; n >= 0; n--) if (s[n] != ' ' && s[n] != '\t' && s[n] != '\n') break; s[n+1] = '\0'; return n; }  
/* itoa: convert n to characters in s */ void itoa(int n, char s[]) { int i, sign; if ((sign = n) < 0) /* record sign */ n = -n; /* make n positive */ i = 0; do { /* generate digits in reverse order */ s[i++] = n % 10 + '0'; /* get ...
3-3 编写函数expand(s1,s2),将字符串s1中类似与a-z一类的速记符号在字符串s2中扩展成等价的完整列表abc...xyz。该函数可以处理大小写字母和数字,并可以处理a-b-c、a-z0-9与-a-z等类似的情况   #include<stdio.h> #include<string.h> void expand(char* result,char* s2); int main() { char *s[] = { "a-d-", "a-b-c","z-a-", &quo ...
希尔排序(Shell Sort)是插入排序的一种。是针对直接插入排序算法的改进。该方法又称缩小增量排序, 希尔排序基本思想:   先取一个小于n的整数d1作为第一个增量,把文件的全部记录分成d1个组。所有距离为dl的倍数的记录 ...
3-2  编写一个函数escape(s,t),将字符串s复制到字符串t中,并在复制过程中将换行符、制表符等不可见的字符分别转换成\n,\t等相应的可见的转义字符。再编写一个相反过程的函数。   #include <stdio.h> void escape(char s[],char t[]); void unescape(char s[],char t[]); int main() { char s1[100]="ni hao ma wohenhao xiexie"; char t[100]; char s2[100]=" ...
3-1 折半查找,2个版本   int binsearch(int x, int v[], int n) { int low, mid, high; low = 0; high = n - 1; while ( low <= high ) { mid = (low+high) / 2; if ( x < v[mid] ) high = mid - 1; else if ( x > v[mid] ) ...
2-9  bitcount()函数:统计x中值为1的二进制位数   #include <stdio.h> int bitcount(unsigned x){ int b; for(b=0;x!=0;x>>=1) if(x&1) b++; return b; } int main () { unsigned x=10;//将x声明为无符号整型数是为了保证将x右移时,无论该程序在什么机器上运行,左边空出的位数都用0(而不是符号位)填补。 int count; count=bitcount(x); p ...
2-8  编写一个函数rightsort(x,n), 该函数返回将x循环右移n位后得到的值。   #include<stdio.h> unsigned rightrot(unsigned x,unsigned n); int main(){ unsigned x=5; unsigned n=1; unsigned result; result = rightrot(x,n); printf("%d\n",result); return 0; } unsigned rightrot(unsigned x,unsig ...
2-7 编写一个函数invert(x,p,n),该函数返回对x执行下列操作后的结果值,将x中从第p位开始的n个(二进制)位求反(即,1变成0,0变成1),x的其余各位保持不变。   #include<stdio.h> unsigned invert(unsigned x,int p,int n); int main(){ unsigned x=5; int p=3; int n=2; unsigned result; result = invert(x,p,n); printf("%d\n",result); ...
2-6 编写一个函数setbits(x,p,n,y),该函数返回对x执行下列操作后的结果值:将x中从第p位开始的n个(二进制)位设置为y中最右边n位的值,x的其余各位保持不变   #include<stdio.h> int setbits(int x,int p,int n,int y); int main(){ int x=10; int y=7; int yResult; int p=3; int n=2; yResult=setbits(x,p,n,y); printf("%d\n",yResult); retur ...
2-5  编写函数any(s1,s2),将字符串s2中的任意字符在字符串s2中第一次出现的位置作为结果返回,如果s1中有不包含在s2中的字符,返回-1 #include<stdio.h> #define max 100 void rlString(char* s1,char* s2); int main(){ char left[100]="shizhendema"; char right[100]="bushizhende"; char* result=""; // printf(" ...
2-4编写函数squeeze(s1,s2),将字符串s1中与字符串s2中字符匹配的字符都删掉   #include<stdio.h> #define max 100 void squeeze(char* leftStrig,char* rightString); int main(){ char left[100]="shizhendema"; char right[100]="bushizhende"; char* result=""; // printf("%s\n", ...
2-3 编写函数htoi(s),把由十六进制数字组成的字符串(包含可选的前缀0x或0X)转换为与之等价的整型值。字符串中允许包含的数字包括:0~9,a~f,A~Z   #include <stdio.h> #include <math.h> #define MAXLENGTH 10 int getline(char s[], int max); int htoi(char s[]); int main(){ int len; char s[MAXLENGTH]; int i; for(i=0;i<MAXLENGTH;i+ ...
Global site tag (gtag.js) - Google Analytics