在C语言中strchr 是什么意思?

2024-11-22 23:08:22
推荐回答(5个)
回答1:

  strchr所在头文件:#include

  功能:用来查找某字符在字符串中首次出现的位置。

  函数原型:char * strchr (const char *str, int c);

  参数说明:str 为要查找的字符串,c 为要查找的字符。

  返回值:如果找到指定的字符则返回该字符所在地址,否则返回 NULL。

  注意:字符串 str 的结束标志 NUL 也会被纳入检索范围,所以 str 的组后一个字符也可以被定位。

  示例:

  #include 
  #include 
  #include 
  int main(){
      char *s = "0123456789012345678901234567890";
      char *p;
      p = strchr(s, '5');
      printf("%ld\n", s);
      printf("%ld\n", p);
      system("pause");
      return 0;
  }

回答2:

我理解为比如有一个字符串:abc dbc cdb
以空格为分隔,分成abc dbc cdb三个字符串,然后再按cdb dbc abc排列。

回答3:

原型:extern char *strchr(char *s,char c);

用法:#include

功能:查找字符串s中首次出现字符c的位置

说明:返回首次出现c的位置的指针,如果s中不存在c则返回NULL。

举例:

// strchr.c

#include
#include

main()
{
char *s="Golden Global View";
char *p;

clrscr();

strchr(s,'V');
if(p)
printf("%s",p);
else
printf("Not Found!");

getchar();
return 0;
}

回答4:

strchr()函数的作用是:返回一个字符串在另一个字符串中首次出现的位置到后者末尾的子字符串.

#include
#include
char *GetStr(char *Buffer,int n,char Split,char *Target);
int main(int argc, char *argv[])
{
int i,j,k;
char split;
char buffer[512];
char target[512];
char tmp_buff[128];
char tmp_targ[128];
char tmp_swap[128];
FILE *pf;

split = ',';
i=0;j=0;k=0;

pf = fopen("1.txt","r");

while ( NULL!=(fgets(buffer,sizeof(buffer),pf)) )
{
j=0;
memset(tmp_buff,0,sizeof(tmp_buff));

if((buffer[strlen(buffer)-1]==0x0a)||(buffer[strlen(buffer)-1]==0x0d))
strncpy(tmp_buff,buffer,strlen(buffer)-1);
else
strcpy(tmp_buff,buffer);

for(i=0;i if(tmp_buff[i]==split)
j++;

for(i=0;i {
memset(target,0,sizeof(target));
GetStr(tmp_buff,i,split,target);
/*strrev(target);*/
for(k=strlen(target)-1;k>=0;k--)
printf("%c",target[k]);
if(i!=j)
printf("%c",split);
}
printf("\n");
memset(buffer,0,sizeof(buffer));
}
fclose(pf);
}

char *GetStr(char *Buffer,int n,char Split,char *Target)
{
int i,j=0;
memset(Target,0,sizeof(Target));
for(i=0;i {
if((Buffer[i]!=Split)&&(n==0))
Target[j++]=Buffer[i];
if(Buffer[i]==Split)
n--;
if((n<0)||(Buffer[i]==0x0d)||(Buffer[i]==0x0a))
break;
}
return (Target);
}

因为不知道题目要求倒排之后的要求,
我就把结果输出到屏幕上了.

1.txt的内容如下:
123,abc,asd
321,abc

屏幕输出结果:
321,cba,dsa
123,cba

回答5:

http://man.chinaunix.net/develop/c&c++/linux_c/default.htm