开发者

Print part of char array

开发者_运维百科So:

char *someCArray; # something

I want to print out "ethin" from "something".


You can use the printf precision specifier

#include <stdio.h>

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

  printf("%.*s\n", len, s + start);

  return 0;
}

Code also posted to codepad: http://codepad.org/q5rS81ox


This Would do the Job Considering you want to print only "ethin" not "ething".

As @Mahesh said in his comment you must give the start and end position from where you want to print characters to make your program more general.

Char *p ="Something";

char *temp=p; //Considering you may require at some point on time the base address of your string.

temp=temp+3;

while(*temp!='g')

printf("%c",*temp++);

If you would be more specific about your requirement we can further help you.These are the basics of C language thus you must thoroughly study arrays,pointers in c.

EDIT:

I won't be able to give you the complete code as this would be against the Stackoverflow rules and moto which is like "Technical Repository And Next To Heaven" for programmers.Thus i can only give you the logic.

Keep on printing characters untill both start and end position becomes equal or their difference becomes zero.You can choose any of the above two methods.


#include <stdio.h>

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;
}

Prints this

Characters 0 through 2 of a[]: abc
Characters 10 through 15 of a[]: klmnop

The "%.Ns" notation in the printf string is "%s" with a precision specifier. Check the printf(3) man page


Try

char* strSth = "something"; 
std::string strPart; 
strPart.assign(strSth+3,strSth+8);
std::cout << strPart;

The result will be : "ethin"

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜