Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 如何仅打印字符串的某些部分?_C_String_Printf - Fatal编程技术网

C 如何仅打印字符串的某些部分?

C 如何仅打印字符串的某些部分?,c,string,printf,C,String,Printf,我有一个字符串const char[15],我想这样打印它: 标签一:字符[0,13] 标签二:字符[13,15] 如何仅打印字符串的某些部分 printf( "%.13s", labelOne ); // stops after thirteen characters. printf( "%.3s", &labelOne[ 13 ] ); // prints three characters of the string that starts at offset 13 我注意到

我有一个字符串
const char[15]
,我想这样打印它:

标签一:字符[0,13]
标签二:字符[13,15]

如何仅打印字符串的某些部分

printf( "%.13s", labelOne );   // stops after thirteen characters.
printf( "%.3s", &labelOne[ 13 ] );  // prints three characters of the string that starts at offset 13
我注意到您的问题或我的答案中可能存在fencepost错误/不一致,这取决于您的观点。第二个示例的正确答案可能是:

printf( "%.3s", &labelOne[ 12 ] ); 

@如果这些长度是恒定的,Bob的回答也是可以接受的,但如果长度是在运行时确定的,这是最好的方法,因为它将它们参数化。

一个小的风格建议:
labelOne+13
似乎比
labelOne[13]更整洁、更自然
@Blagovest——我想是习惯的力量吧。我在这个问题上反复讨论过,就你的观点而言,你的格式现在更为常见。当我多年来开始使用C语言开发时,&str[offset]格式似乎更为常见。
printf("Label-one: %.*s", 13, str);
printf("Label-two: %.*s", 2, str + 13);