#include "stdlib.h"
void reverse(char s[], int len){
char temp;
int i;
for (i = 0; i < len - i - 1;i++) {
temp = s[i];
s[i] = s[len - i - 1];
s[len - i - 1] = temp;
}
}
int absract(char s[], char t[]){
int len = 0, num = -1, i = 0, j = 0;
while(s[i]) {
i++;
}
for (i -= 2; i >= 0; i--) {
if (s[i] == '$') {
if (j == 1)
t[len] = s[i+1]-48 ;
if (j == 2)
t[len] = s[i+2]-48 + 8*(s[i+1]-48);
if (j == 3)
t[len] = s[i+3]-48 + 8*(s[i+2]-48) + 64*(s[i+1]-48);
len++;
j = 0;
} else {
j++;
}
}
t[len] = 0;
return len;
}
int main() {
char str[100] = "$164$163$145$124$40$154$147$141$165$147$156$141$114$40$103";
char t[100];
int len = absract(str, t);
printf("lenth: %d \nstring t: %s\n",len, t);
return 0;
}
小問題最難找了,剛剛把ASCLL弄錯了....
功能基本是這樣了,不過為了方便實現,我直接在absract函數裏把字符串反序了,分開寫好像也差不多。代碼有什麽問題再問