打印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)手册页