【发布时间】:2015-11-04 08:10:21
【问题描述】:
我想问是否说我有一个字符串“abcdefgh”,我想将其减半变成“abcd”和“efgh”并将其存储到他们自己的字符串中说我称之为“UpperHalf”和“LowerHalf”。所以这样做的方法是首先使用 strlen() 找出我输入的长度和一半?然后我需要使用 strcpy() 并将其复制到各自的字符串中,对吗?
实际上我什至不知道我的代码是否有意义。任何人都可以给我一些cmets吗?
我意识到我只需要考虑偶数输入,这意味着我不需要担心奇数输入。以前我试图将一维字符串分成两半,然后用其他东西 strcat 它。但是现在我得到了一系列以二维数组格式存储的输入字符串。在这种情况下,我如何检索这些字符串并像之前的 1d 情况一样操作它们?我认为我不需要使用 for 循环?我可以只指向行吗?
int d = strlen(str); // just an example where str = the characters inside my string
strcpy(temp, &str[0]); // store original string into a temp string starting from 0 to \0
str[d/2] = '\0';
strcpy(UpperHalf, &str[0]); // starts copying from position 0 to \0 which is the half way point
str[0] = temp; //revert back to normal -> Does this line even make sense?
strcpy(LowerHalf, &str[d/2]);
【问题讨论】:
-
将“/0”替换为“\0”
-
谢谢。我纠正了它,但从逻辑上讲,有什么 cmets 吗?有点第一次做字符串。
-
您知道数组会自然衰减为指向其第一个元素的指针吗?这意味着如果你有一个数组
str并将它传递给一个带指针的函数,编译器将传递的内容实际上与&str[0]相同。因此,您不必明确说明,只需传递str即可。