#include "stdio.h"
void printAddHead(const char *head, char *str, int taglen) {
int offset = taglen;
char *b = str + offset;
char *e = str + offset;
while(*e != 0) {
if(*e == '\n') {
if(e != b) {
*e = 0;
printf("%s%s\n", head, str + offset);
offset += e-b+1;
}
else {
offset++;
}
b = e+1;
}
e++;
}
if(e != b) {
printf("%s%s\n", head, str + offset);
}
}
int main() {
char a[] = "TAG\0abcdefg\nhijklmn\nopq";
char b[] = "TAG\0abcdefg\nhijklmn\nopq\n";
char c[] = "TAG\0\nrstuv\n";
char d[] = "TAG\0normalstring";
char e[] = "TAG\02newlines\n\n3newlines\n\n\n4newlines\n\n\n\n";
printAddHead("TESTHEAD: ", a, 4 );
printAddHead("TESTHEAD: ", b, 4);
printAddHead("TESTHEAD: ", c, 4);
printAddHead("TESTHEAD: ", d, 4);
printAddHead("TESTHEAD: ", e, 4);
return 0;
}
双指针实现
最新推荐文章于 2022-04-22 17:55:29 发布