我不知道下面的代码有什么问题。我仔细阅读了 stackoverflow,但没有找到太多帮助。
char * abbreviate_name( const char * full_name) {
int length = strlen(full_name) + 1;
char * final = malloc(length);
*answer = '\0';
char ptr[51];
// above is where I declare all my variables
strncpy(ptr, full_name, length); // copy full_name because it is a const
// ...
final = &ptr[1]; // this line copies all of ptr when I do a prinf on it
我只是想知道如何获取 ptr 的第一个字母。 我尝试使用 ptrs 和地址,但无法正常工作。
最佳答案
要获取指针的第一个字符,您可以使用 *ptr
或 ptr[0]
。
但是您的代码还有其他问题,分配给 final 不会复制,它只是将 final 指向另一个位置,在这种情况下,您将指向一个堆栈变量,它会严重失败。
相反,只需将 strcpy
放入 final 并去掉“ptr”
关于c 复制 ptr 的第一个字母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32533952/