【问题标题】:Add char to the middle of the Array of string [duplicate]将char添加到字符串数组的中间[重复]
【发布时间】:2019-10-27 04:21:15
【问题描述】:

我需要在字符串中间添加点('.')和其他字符,我不知道该怎么做。比如用户输入12345678900,我需要打印123.345.678-00

这是数组部分:

#define MAX 100

struct cadastro
{
  int id;
  char cpf[MAX];
};

这就是我的阅读方式:

 printf("| Digite seu CPF: ");
 fflush(stdin); 
 fgets(cdto[autoincrement].cpf, (MAX-1), stdin);

【问题讨论】:

  • 您需要存储修改后的字符串,还是只需要显示它?你知道这个字符串是 11 位数吗?请注意,您可以使用 sizeof(cdto[autoincrement].cpf) 代替 (MAX-1)fgets() 处理字符串末尾的换行符和 null(保留换行符)。
  • @JonathanLeffler 嘿,字符串的大小,始终为 11,但来自@roottraveller 的这篇文章不起作用,你知道别的吗?
  • 我只需要显示它

标签: c


【解决方案1】:

数组具有静态大小,因此不会动态扩展。如果您的目标是以上述格式打印字符串,下面的代码应该可以帮助您。

int main()
{
    char tempstr[16];
    sprintf(tempstr, "%.3s.%.3s.%.3s-%s", cdto.cpf, cdto.cpf+3, cdto.cpf+6, cdto.cpf+9);
    printf("%s\n", tempstr);    // 123.456.789-00
}

【讨论】:

  • 这正是我需要感谢的!
猜你喜欢
  • 2020-08-17
  • 2012-12-15
  • 2011-04-03
  • 1970-01-01
  • 2022-01-10
  • 2021-03-18
  • 1970-01-01
  • 2016-08-02
  • 1970-01-01
相关资源
最近更新 更多