c - 如何添加字符以达到 char[] 的最大大小

标签 c char

我有以下部分代码:

for(int i=0;i<n;i++)
{
    printf("Student %d\n",i+1);
    printf("Enter name : ");
    scanf("%s",&(student+i)->name);
    fflush(stdin);

    lengthName = strlen((student+i)->name);
    while(lengthName !='\0')
    {

    }} 

当长度小于10时,它会添加连字符,直到达到最大尺寸。 例如:John =>> 将添加 6 个连字符

我知道如何在 csharp 中执行此操作,但无法在 c 中弄清楚。 你们中的一些人可以给我一些灯吗?

PS:哦,是的,变量名是 char name[10+1],它是名为 student 的结构的一部分。

最佳答案

这太简单了,看来我一定漏掉了什么。

lengthName = strlen(student[i].name);
while (lengthName < 10)
  student[i].name[lengthName++] = '-';
student[i].name[lengthName] = '\0';

也许您对 C#(假定)拥有一流的字符串类型感到困惑? C中没有这样的东西,只有字符数组;这既乏味(您必须自己完成所有内存管理)又解放(如您所见)。

关于c - 如何添加字符以达到 char[] 的最大大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4501485/

相关文章:

c - 无法复制堆栈缓冲区溢出漏洞利用

c - C语言中%c和%s如何工作?

c++ - 使用指针c++的问题

c++ - 如何注入(inject)从文件加载的shellcode?

c - deleteDuplicates 单链表 C

c - 使用带有指针的嵌套结构

c++ - 根据文件中的指令编写一个字符数组

c - 使用变量将不同的字符串分配给 char 数组

c - 带空格的字符串连接

c - 每次执行指令时,如何编写一条指令将两个值切换到一个变量中?