我想知道是否有一种方法可以将第一个字母由 char* 指向的字符串转换为 char[],因此它不再是指针,而是文字 char[]。
例如,如果我的字符串是“嗨,我的名字是 bob\0”,并且char* pointer
通过 memcpy 将此字符串复制到它,有没有办法将其转回 char[]?
任何帮助,将不胜感激。
我想知道是否有一种方法可以将第一个字母由 char* 指向的字符串转换为 char[],因此它不再是指针,而是文字 char[]。
例如,如果我的字符串是“嗨,我的名字是 bob\0”,并且char* pointer
通过 memcpy 将此字符串复制到它,有没有办法将其转回 char[]?
任何帮助,将不胜感激。
无需转换,您可以像索引数组一样索引指针。你可以
char * a;
蚂蚁然后做
char ch = a[4];
这是一个类似的问题here
其他方式也一样简单
void f(int* p);
int x[5];
f(x); // this is the same as f(&x[0])
他们是一样的东西。a[i] 等价于 *(a + i),以至于你可以写 i[a] 并得到相同的结果!
像这样的东西?
#define STRLEN (64)
char greeting[STRLEN];
strncpy(greeting,chrptr,STRLEN);
if (strlen(chrptr) > (STRLEN-1))
greeting[(STRLEN-1)] = 0;
使用 strncpy 或 strcpy:
char *a = "hello world!";
int aLen = strlen(a);
char b[] = new char[aLen + 1]; // C++ version
// char* b = (char*)malloc((aLen + 1) * sizeof(char)); // C version
strncpy(b, a, aLen);
b[aLen] = '\0';