我有一个函数,两个字符串string_one和string_two一个指向字符的指针.
我想到了一种将它们添加到一起的方法:
while (*string_one){
string_one++;
}
*string_one = *string_two;
Run Code Online (Sandbox Code Playgroud)
但我看不到输出中的第二个字符串!
如何添加两个字符串呢?我接近了吗?
当你写作
*string_one = *string_two;
Run Code Online (Sandbox Code Playgroud)
你只是复制一个字符,因为你正在取消引用一个字符指针
要相互添加两个字符串,您需要覆盖第一个字符串上的\ 0,然后追加第二个字符串中的字符(前提是您有足够的空间来执行此操作).
所以这
while (*string_one) {
string_one++;
}
*string_one = *string_two;
Run Code Online (Sandbox Code Playgroud)
只会用string_two中的第一个字符覆盖\ 0,这将导致第一个字符串不再为null终止.
相反,你应该这样做类似的事情
while (*string_one) {
string_one++;
}
while (*string_two) {
*string_one++ = *string_two++;
}
*string_one = '\0';
Run Code Online (Sandbox Code Playgroud)
再次假设string_one最初指向一个足以容纳两个字符串的字符串.
| 归档时间: |
|
| 查看次数: |
56 次 |
| 最近记录: |