<分区>
如何使用 C 将字符串分成两半?我到处寻找答案,但大多数似乎都处理空格或其他字符的拆分(例如 1 、 2 、 3 )。我只想将一个字符串分成两半。有没有简单的方法可以做到这一点?
最佳答案
不,没有简单的方法 - 它需要几个步骤:
这里是你如何做到的:
char *str = "quickbrownfox";
int len = strlen(str);
int len1 = len/2;
int len2 = len - len1; // Compensate for possible odd length
char *s1 = malloc(len1+1); // one for the null terminator
memcpy(s1, str, len1);
s1[len1] = '\0';
char *s2 = malloc(len2+1); // one for the null terminator
memcpy(s2, str+len1, len2);
s2[len2] = '\0';
...
free(s1);
free(s2);
如果您拥有整个字符串,则无需复制第二个副本,因为将指针指向字符串的中间就可以了。
关于c - 使用C将字符串分成两半,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19305980/