gpt4 book ai didi

c - 如何从 C 中函数返回的指针访问字符串

转载 作者:太空宇宙 更新时间:2023-11-04 07:54:30 25 4
gpt4 key购买 nike

我有一个函数返回指向 C 中字符串的指针,我试图访问整个字符串,但我不确定如何访问。

我有一个循环抛出包含学生数据的结构链表并获取学生姓名的函数。我想在每个字符串的末尾填充空格,使它们的大小相同。所以我写了一个函数来填充字符串。该函数返回一个指向字符串的指针,但我不知道如何从该指针访问整个字符串。我知道我可以用 *pstring 来获取字符串的第一个字符,但我对如何获取其余字符有点迷茫。

循环遍历链表:

void myFunction(void) {

pStudent = pHead;
char paddedName[30];
long nameLength = 0 ;

while(pStudent->pNext != NULL){
printf("%c,\n", *padstring(pStudent->name));
strcpy(paddedName, padstring(pStudent->name));
nameLength = strlen(paddedName);
printf("%lu | %s | %s \n", nameLength, paddedName, pStudent->name);
pStudent = pStudent->pNext;
}
printf("\n");

}

这将填充并返回字符串:

char *padstring(char* string){

char name[30];
int i = 0;

while(i < 30){
if(i < strlen(string)){
name[i] = string[i];
}
else{
name[i] = ' ';
}
i++;
}
printf("%s,\n", name);
return name;

}

最佳答案

没有必要创建一个新的字符串。您可以使用下面的格式说明符输出右填充到特定长度的字符串(例如:%-30s 右填充到 30 个字符):

printf("[%-10s]", name);

/* [Name ] */

如果您确实创建了一个新字符串,您需要返回一个有效的内存位置。与其返回指向本地堆栈的指针,不如使用 malloc 分配内存,并记住在完成后 free 它(或者传入在堆栈上分配的数组来电者)。

关于c - 如何从 C 中函数返回的指针访问字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51164082/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com