当前位置:首页 > 问答大全 > C语言高手请进!

C语言高手请进!

被浏览: 0次 2023年06月23日 05:18
热门回答(4个)
游客1

strchr(查找字符串中第一个出现的指定字符)
相关函数
index,memchr,rinex,strbrk,strsep,strspn,strstr,strtok
表头文件宴兆
#include
定义函数
char * strchr (const char *s,int c);
函数说明
strchr()用来找出参数s字符串中第一个戚碧出现的参数c地址,然后将该字符出现的地址返回。
返回值
如果找到指定的字符则返回该字符所在地址,否则返回0。
范例
#include
main()
{
char *s="0123456789012345678901234567890";
char *p;
p=strchr(s,'5');
printf("%s\n",p);
}
执行
56789012345678901234567890

strstr(在一字符串中查找指定的字符串)
相关函数
index,memchr,rindex,strchr,strpbrk,strsep,strspn,strtok
表头文件
#include
定义函数
char *strstr(const char *haystack,const char *needle);
函数说明
strstr()会从字符串haystack 中搜寻字符串晌仔租needle,并将第一次出现的地址返回。
返回值
返回指定字符串第一次出现的地址,否则返回0。
范例
#include
main()
{
char * s="012345678901234567890123456789";
char *p;
p= strstr(s,"901");
printf("%s\n",p);
}
执行
901234567890123456789

游客2

1. 求子串位置的算法
不用什芦盯么算法,直接用C语言里面的strstr即可。
原型:
char *strstr(const char *s1, const char *s2);

如果一定要自己写的话,这样:
int Index(char *haystack, char *needle, int *pos)
{
char *p = haystack;
char *p1, *p2;

if ( !*needle )
return((char *)haystack);

while(*p)
{
p1 = p;
p2 = (char *) needle;

while( *p1 && *p2 && (*p1++==*p2++) );

if (!*p2)
{
*pos = p - haystack;
return *pos;
}

p++;
}

return -1;
}

2. 求子串的拍姿算法
char *SubString(char *subStr, int iPos, int iLen)
{
char *srcStr = buffer;
if( srcStr==NULL )
return NULL;

if( iPos<1 || iPos>(int)strlen(srcStr) || iLen<1 )
return NULL;
if( iLen>袭哗绝(int)strlen(srcStr)-iPos+1 )
iLen = (int)strlen(srcStr)-iPos+1;

strncpy(subStr, &buffer[iPos-1], iLen);
subStr[iLen] = '\0';

return subStr;
}

游客3

写个main函数 在里面调用就行了

游客4

写个main函数也调试不出来
它岁卜还有好多条件都没有给出来,如SString S这里的SString 是什么?这个也是要写的pos是什锋雀碰么?也没银谈有写出来。