当字符串的长度大于n时,如何打印字符串的前n个字节? [英] How to print string first n bytes when the string's length is greater than n?

查看:28
本文介绍了当字符串的长度大于n时,如何打印字符串的前n个字节?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

所以我有一个具有一定字节(或长度)的字符串。我之所以说字节,是因为字符串末尾没有空终止符。不过,我知道这根线有多长。通常,我们都知道,当您printf("%s", str);时,它会一直打印每个字节,直到它变成空字符。我知道没有不是以NULL结尾的C字符串,但是我有一个奇怪的情况,我存储的是内容(不是专门的字符串),并且我存储的不是NULL,而是"内容"的长度。

这里有一个小示例:

char* str = "Hello_World"; //Let's use our imagination and pretend this doesn't have a NULL terminator after the 'd' in World
long len = 5;

//Print the first 'len' bytes (or char's) of 'str'

我知道您可以这样做:

printf("%.5s", str);

但是在这种情况下,我在硬编码5 in,尽管在我的情况下,5在一个变量中。我会这样做:

printf("%.(%l)s", len, str);

但我知道你不能这么做。但能让你对我想要实现的目标有所了解。

推荐答案

printf("%.*s", len, str);

而且,没有非NULL结尾的C字符串。

这篇关于当字符串的长度大于n时,如何打印字符串的前n个字节?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆