C程序设计语言练习 第二章
程序员文章站
2022-03-25 22:50:32
2.3 常量 strlen函数:返回s的长度 2.7 类型转换 atoi函数:将字符串s转换为相应的整型 C int atoi(char s[]) { int n = 0; for (int i = 0; s[i] = '0' && s[i] = 'A' && c = '0' && s[i] = ' ......
2.3 常量
strlen函数:返回s的长度
int strlenn(char s[]) { int i=0; while(s[i] != '\0') ++i; return i; }
2.7 类型转换
atoi函数:将字符串s转换为相应的整型
int atoi(char s[]) { int n = 0; for (int i = 0; s[i] >= '0' && s[i] <= '9'; i++) n = 10*n + (s[i] - '0'); return n; }
lower函数:把字符c转换为小写形式,只对ascii字符集有效
int lower(int c) { if(c >= 'a' && c <= 'z') return c + 'a' -'a'; else return c; }
rand函数:返回取值在0~32767之间的伪随机数,\(2^{15}\) = 32768
srand函数:为rand()函数设置种子数
unsigned long int next = 1; int rand() { next = next*1103515245 + 12345; return (unsigned int)(next/65536)%32768; } void srand(unsigned int seed) { next = seed; }
练习2-3
编写函数htoi(s), 把由十六进制数字组成的字符串(包含可选的前缀0x或0x)转换为与之等价的整型值。字符串中允许包含数字包括:0~9,a~f以及a~f。
int htoi(char s[]) { int n = 0,i = 0; if(s[0] == '0' && (s[1] == 'x' || s[1] == 'x')) i = 2; for(; s[i] != '\0'; ++i) { if(s[i] >= '0' && s[i] <= '9') n = 16*n + (s[i] - '0'); else if(s[i] >= 'a' && s[i] <= 'f') n = 16*n + (s[i] - 'a' + 10); else if(s[i] >= 'a' && s[i] <= 'f') n = 16*n + (s[i] - 'a' + 10); else break; } return n; }
2.8 自增运算符与自减运算符
squeeze函数:从字符串s中删除字符
void squeeze(char s[], char c) { int i,j; for(i=j=0; s[i] != '\0'; ++i) if(s[i] != c) //当不相等时才赋值,否则忽略 s[j++] = s[i]; s[j] = '\0'; }
strcat函数:将字符串t连接到字符串s的尾部;s必须有足够大的空间
void strcatt(char s[], char t[]) { int i=0,j=0; while(s[i] != '\0') ++i; while((s[i++] = t[j++]) != '\0') ; }
练习2-4
重写函数squeeze(s1,s2),将字符串s1中任何与字符串s2中字符匹配的字符都删除。
void squeeze2(char s1[], char s2[]) { int i,j,z; for(i=j=0; s1[i] != '\0'; ++i) { for(z=0; s2[z] != '\0'&& s1[i] != s2[z]; ++z) ; if(s2[z] == '\0') s1[j++] = s1[i]; //s2没有与之相等的字符 } s1[j] = '\0'; }
上一篇: python用线性回归预测股票价格
下一篇: Python方法的延迟加载的示例代码