打印char数组的一部分

所以:
char *someCArray; # something
我想从“某事”打印出“ethin”。     
已邀请:
您可以使用
printf
精度说明符
#include <stdio.h>

int main(void) {
  char s[] = "something";
  int start = 3;
  int len = 5;

  printf("%.*sn", 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,就像程序员的“技术资源库和天堂旁边”一样。因此我只能给你逻辑。 继续打印字符,直到开始和结束位置相等或它们的差异变为零。您可以选择以上两种方法中的任何一种。     
尝试
char* strSth = "something"; 
std::string strPart; 
strPart.assign(strSth+3,strSth+8);
std::cout << strPart;
结果将是:“ethin”     
#include <stdio.h>

int main()
{
        char a[1024] = "abcdefghijklmnopqrstuvwxyz";
        printf("Characters 0 through 2 of a[]: %.3sn", a);
        printf("Characters 10 through 15 of a[]: %.6sn", &a[10]);
        return 0;
}
打印这个
Characters 0 through 2 of a[]: abc
Characters 10 through 15 of a[]: klmnop
printf字符串中的“%.Ns”符号是带有精度说明符的“%s”。检查printf(3)手册页     

要回复问题请先登录注册