打印char数组的一部分
所以:
char *someCArray; # something
我想从“某事”打印出“ethin”。
您可以使用printf
precision说明符
#include int main(void) { char s[] = "something"; int start = 3; int len = 5; printf("%.*s\n", len, s + start); return 0; }
代码也发布到codepad: http : //codepad.org/q5rS81ox
这样做会考虑你想要只打印“ ethin ”而不是“ ething ”。
正如@Mahesh在评论中所说,你必须从你想要打印字符的位置开始和结束位置,以使你的程序更通用。
Char *p ="Something";
char *temp=p;
//考虑到你可能会在某个时间点要求你的字符串的基地址。
temp=temp+3;
while(*temp!='g')
printf("%c",*temp++);
如果您对您的要求更具体,我们可以为您提供进一步的帮助。 这些是C语言的基础知识,因此你必须彻底研究c中的数组和指针。
编辑:
我将无法为您提供完整的代码,因为这将违反Stackoverflow规则和moto,就像程序员的“ Technical Repository And Next To Heaven” 。因此我只能给你逻辑。
继续打印字符,直到开始和结束位置相等或它们的差异变为零。您可以选择以上两种方法中的任何一种。
尝试
char* strSth = "something"; std::string strPart; strPart.assign(strSth+3,strSth+8); std::cout << strPart;
结果将是:“ethin”
#include int main() { char a[1024] = "abcdefghijklmnopqrstuvwxyz"; printf("Characters 0 through 2 of a[]: %.3s\n", a); printf("Characters 10 through 15 of a[]: %.6s\n", &a[10]); return 0; }
打印这个
Characters 0 through 2 of a[]: abc Characters 10 through 15 of a[]: klmnop
printf字符串中的“%.Ns”符号是带有精度说明符的“%s”。 检查printf(3)手册页