【问题标题】:Using printf to printf to print a part of string [duplicate]使用 printf 到 printf 打印字符串的一部分 [重复]
【发布时间】:2015-03-26 16:26:43
【问题描述】:

例如,我有一个字符串,我想编写一个函数,将它的一部分打印到屏幕上,打印的长度未初始化,但稍后由函数或输入数据定义

通常

char str[70]="my name is Jack";
printf("%.4s", str[11])

结果将是“杰克”

但是现在指定了要写入标准输出的长度

char str[70]="my name is Jack";
int x;
scanf("%d",&x);

现在我将在稍后定义长度,所以如何将它与 printf 一起使用 我现在只是用这个方法

char str[70]="my name is Jack";
int x, i;
scanf("%d",&x);
for(i=0, i<x, i++){
    printf("%c", str[11+i]);

这会起作用,但我想知道是否有任何方法可以在不使用循环的情况下进行 printf。我试过了

printf("%.xc", str[11+i]);

但是结果不正确,所以不是这样的。

【问题讨论】:

  • scanf("%d",x); 应该是scanf("%d",&amp;x);
  • printf("%.4s", str[11]) 应该是printf("%.4s", str + 11)

标签: c string io printf


【解决方案1】:

在 printf 转换说明符中使用 *

char data[] = "The name is Jack Monroe";
int length = 4;
int start = 12;
printf("%.*s", length, data + start); // Jack

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-10
  • 2012-08-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-11
  • 1970-01-01
相关资源
最近更新 更多