【发布时间】:2014-05-29 12:46:18
【问题描述】:
我有一个命令行参数,它是字母数字,例如“ABCDE1234567”作为 argv[1] 传递。我正在寻找重新排列 char* 以便将前 4 个字符发送到字符串的末尾,所以它最终会像 E1234567ABCD 一样。
我从 argv 获取 char*,如下所示:
char* input = argv[1];
validate(input);
然后传递给一个函数来完成工作,
void validate (char* input) {
// move the first 4 chars to the end
// this is where i'm stuck :-)
}
我知道这应该很容易,但我一直在尝试使用 strcpy、sprintf、for 循环,但没有成功。
编辑:
我试图将没有前四个字符的字符串复制到缓冲区中,但这似乎没有产生任何结果:
int n = strlen(input);
char buffer [n - 4];
for (int i = 4; i <= n; i++) {
printf("%c\n", input[i]);
sprintf(buffer, "%c", input[i]);
}
printf("%s\n", buffer);
【问题讨论】:
-
请在您的问题中包含有问题的代码。
-
你自己尝试了什么?
标签: c