#include <stdio.h> #include <stdlib.h> #include <string.h> #include <ctype.h> #define N 1024 typedef unsigned int __u32; char *decode(const char *src) { const char *pnumb = src; const char *pchar = src; __u32 chartoint; __u32 offset; char *cdest; char *res; res = (char *)malloc(sizeof(char) * N); if (!res) { /* code */ printf("allocate memory failed!.\n"); exit(1); } *res = '\0'; while(*pchar){ if (isalpha(*pchar)) { /* code */ pnumb = pchar; while(!isdigit(*pnumb)) { pnumb++; } offset = pnumb - pchar; chartoint = (int)(*pnumb - '0'); while(chartoint) { cdest = (char *)malloc((offset + 1)*sizeof(char)); if (!res) { /* code */ printf("allocate memory failed!.\n"); exit(1); } strncpy(cdest, pchar, offset); *(cdest + offset) = '\0'; strcat(res, cdest); free(cdest); chartoint--; } } pchar = pnumb + 1; } return res; } int main(int argc, char const *argv[]) { /* code */ char *res; char str[] = "a2bc3d1"; res = decode(str); if (!res) { /* code */ printf("decrypt error!.\n"); goto end; } printf("After decrypt, the result is: %s\n", res); free(res); end: return 0; }
点赞 评论

相关推荐

ResourceUtilization:四六级不愧是大学最有用的证之一
点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务