c++用指针实现字符串的复制
时间: 2024-06-14 17:05:58 浏览: 11
C++中可以使用指针来实现字符串的复制。下面是一个示例代码:
```cpp
#include <iostream>
using namespace std;
void stringCopy(char* dest, const char* src) {
while (*src != '\0') {
*dest = *src;
dest++;
src++;
}
*dest = '\0';
}
int main() {
char str1[] = "I love CHINA!";
char str2[20];
stringCopy(str2, str1);
cout << "str1 is: " << str1 << endl;
cout << "str2 is: " << str2 << endl;
return 0;
}
```
这段代码中,我们定义了一个`stringCopy`函数,它接受两个参数:目标字符串的指针`dest`和源字符串的指针`src`。函数通过循环将源字符串中的每个字符复制到目标字符串中,直到遇到字符串结束符`\0`。最后,我们在`main`函数中调用`stringCopy`函数来复制字符串,并输出结果。
相关问题
c++用指针求字符串长度
要用指针求字符串的长度,可以通过遍历字符串来实现。首先,定义一个指向字符串的指针,指向字符串的第一个字符。然后,使用一个计数器变量来记录字符的个数,初始化为0。接下来,使用循环结构来遍历字符串,每次迭代时,判断指针指向的字符是否为字符串的结束符号('\0')。若不是结束符号,则将计数器加1,并将指针指向下一个字符。直到遇到结束符号,循环停止。最后,返回计数器的值即为字符串的长度。
以下是一个示例代码:
```cpp
#include <iostream>
int stringLength(const char* str) {
int length = 0;
const char* ptr = str;
while (*ptr != '\0') {
length++;
ptr++;
}
return length;
}
int main() {
const char* str = "Hello World!";
int length = stringLength(str);
std::cout << "字符串长度为:" << length << std::endl;
return 0;
}
```
在这个示例中,字符串常量"Hello World!"被赋给一个指针变量`str`,然后调用`stringLength`函数来计算字符串的长度。函数中,使用一个循环来遍历字符串,每次迭代都将计数器加1,并将指针指向下一个字符。最后,返回计数器的值。执行结果输出字符串的长度为:12。
C++用指针实现倒序输出字符串
可以使用指针来实现字符串倒序输出的功能,代码如下:
```c++
#include <iostream>
#include <cstring>
using namespace std;
void reversePrint(char *str)
{
int len = strlen(str);
char *p = str + len - 1;
while (p >= str) {
cout << *p;
p--;
}
}
int main()
{
char str[100];
cin.getline(str, 100);
reversePrint(str);
return 0;
}
```
首先,我们计算出字符串的长度 len,然后用一个指针 p 指向字符串的最后一个字符,即 `str + len - 1`,然后从后向前遍历字符串,依次取出每个字符并输出即可。
注意,这里用到了指针的算术运算,即指针加减整数得到的仍然是指针。指针 p 初始化时指向字符串的最后一个字符,每次循环结束后将 p 减一,指向前一个字符。