给某字符串补齐长度为16的整数倍

来源:互联网 发布:如何扩大交际圈 知乎 编辑:程序博客网 时间:2024/05/12 11:54

如题,上代码

#include <string.h>#include <stdlib.h>char *t = (char *)malloc(1000);char *buf = (char *)malloc(1020);char * fill_string(char *str){int flag = 0;char *s8 = "8";int n = strlen(str);if(n % 16){strcpy(t, str);   //然后把str复制进去strcat(t, s8);   //再把s8添加到后面str = t;  //最后再赋值给str        n = (n / 16 + 1) * 16;        flag = 1;}    memset(buf, '0', n + 1);    buf[n] = 0;    strcpy(buf, str);    if (flag){buf[strlen(str)] = '0';}return buf;}int _tmain(int argc, _TCHAR* argv[]){char *str = "abcdef123456123456";str = fill_string(str);printf("%s", str);return 0;}
结果是

0 0