字符串转数值 数值 = tonumber(字符串)
支持 16进制转10进制:1024 = tonumber(”0x000400”)
支持 10进制转10进制:1234 = tonumber(”1234”)
暂时不支持其他进制转换
int tonumber(char s[]) {
int i,c;
int n = 0;
if (s[0] == '0' && (s[1]=='x' || s[1]=='X')) { /*将16进制转换10进制*/
i = 2;
for (; (s[i] >= '0' && s[i] <= '9') || (s[i] >= 'a' && s[i] <= 'z') || (s[i] >='A' && s[i] <= 'Z'); ++i) {
if (s[i] >= 'A' && s[i] <= 'Z') { /*将大写字母转换成小写字母*/
c = s[i] + 'a' - 'A';
} else {
c = s[i];
}
if (c > '9') {
n = 16 * n + (10 + c - 'a');
} else {
n = 16 * n + (c - '0');
}
}
} else { /*将10进制转换10进制*/
for (i = 0; s[i] >= '0' && s[i] <= '9'; ++i) {
n = 10 * n + (s[i] - '0');
}
}
return n;
}
字符串分割 下个起始键值 = sting_gmatch(切割存放表,起始键值,字符串,分割符号)
返回=0代表遍历结束
int sting_gmatch(char s[],int k,char str[],char delims[]) {
int i;
int j=strlen(str); //获取数组元素个数#t
for(i=k; i<j; i++) {
if(str[i]==delims[0]) {
s[i-k]='\0';
/* printf("%s\n",s); */
return i+1;
} else {
s[i-k]=str[i];
}
if(i==j-1) {
s[i+1]='\0';
return 0;
}
}
}
int main() {
char str[] = "0x000400-0x333333";
int p=0;
while (1) {
char s[10];
p=sting_gmatch(s,p,str,"-");
printf("%s\n",s);
/* printf("%d\n",p); */
if(p==0) {
break;
}
}
return 0;
}
整数的指针
从标准输入中获得2个整数,并将2个整数交换如下。使用指针的概念在你的工作中。打印你的结果在标准输出。
数据结构:整数数组
输入:2个由空格隔开的整数
•输出:2个整数交换
条件:使用指针来交换2个数字
做一个函数