#includestring.h
Returns a pointer to the first occurrence of strSearch in str, or NULL if strSearch does not appear in str. IfstrSearch points to a string of zero length, the function returns str.
代码如下:
#include stdio.h
#include conio.h
#include string.h
#include stdlib.h
int main(void)
{
char *s="Golden Global View";
char *l="ob"; ? //char *l=""
char *p;
system("cls");
p=mystrstr(s,l);
if (p!=NULL)
printf("%sn",p);
}
else
printf("Not Found!n");
getch();
return 0;
/*FROM 百科*/
int n;
while(*s1)
return (char*)s1;
s1++;
return NULL;
另一个实现:
char * ?strstr (buf, sub)
register char *buf;
register char *sub;
register char *bp;
register char *sp;
if (!*sub)
return buf;
while (*buf)
bp = buf;
sp = sub;
do {
if (!*sp)
} while (*bp++ == *sp++);
buf += 1;
又一个实现:
#include iostream
#include string
using namespace std;
//c语言实现strstr
const char* isSub(const char* str, const char *subs){
//特殊情况
if(!*subs)
return str;
const char* tmp=str;
while (*tmp!='')
//用于每次将父串向后移动一个字符
const char* tmp1=tmp;
//记录子串地址
const char* sub1=subs;
while (*sub1!=''*tmp1!='')
//若不相等则跳出,将父串后移一个字符
if (*sub1!=*tmp1)
break;
//若相等且子串下一个字符是末尾则是这个父串的子串
if (*sub1==*tmp1*(sub1+1)=='')
return tmp;
//若相等则继续比较下一个字符
if (*sub1==*tmp1)
sub1++;
tmp1++;
tmp++;
int main(){
char* str1="ababcdddb";
char* str="";
const char *res=isSub(str1,str);
if (res!=NULL)
cout res endl;
cout "null" endl;
//cout isSub(str1,str) endl;
C语言中,strstr函数的功能是寻找字符串中子串出现的位置,自己写的步骤如下.
需要准备的材料分别有:电脑、C语言编译器.
①.、首先,打开C语言编译器,新建一个初始.cpp文件,例如:test.cpp.
int fun(char *a, char *b)
int i, j, alen = strlen(a), blen = strlen(b);
for (i = 0; i alen - blen + 1; i++)
if (a[i] == b[0]) {
for (j = 1; j blen; j++) if (a[i + j] != b[j])break;
if (j == blen)
return i;
return -1;
应该这样用:
strcpy(c,s.c_str());
这样才不会出错,c_str()返回的是一个临时指针,不能对其进行操作.
语法: const char *c_str();
c_str()函数返回一个指向正规C字符串的指针, 内容与本string串相同.,这是为了与c语言兼容,在c语言中没有string类型,故必须通过string类对象的成员函数c_str()把string 对象转换成c中的字符串样式.
注意:一定要使用strcpy()函数 等来操作方法c_str()返回的指针.
扩展资料:
关于上述用法种最好不要这样用
const?char*?c;
c?=?s.c_str();
s?=?"abcd";
std::cout?c?std::endl;?//输出:abcd
C 库函数 - strtol():
C 标准库 - stdlib.h
描述
strtol() 函数的声明
long int strtol(const char *str, char **endptr, int base)
参数
str -- 要转换为长整数的字符串.
endptr -- 对类型为 char* 的对象的引用,其值由函数设置为 str 中数值后的下一个字符.
返回值
该函数返回转换后的长整数,如果没有执行有效的转换,则返回一个零值.
实例
下面的实例演示了 strtol() 函数的用法.
int main()
char *ptr;
long ret;
ret = strtol(str, ptr, 10);
printf("数字(无符号长整数)是 %ld\n", ret);
printf("字符串部分是 |%s|", ptr);
return(0);
让我们编译并运行上面的程序,
这将产生以下结果:
数字(无符号长整数)是
this is a test.
①.、strcat()
此函数原型为 char *strcat(char *dest, const char *src).
功能为连接两个字符串,把src连接到dest后面;返回dest地址
实现如下
[cpp] view plaincopy
char * strcat(char *dest,const char *src)
char* addr=dest;
while(*dest)//找到'\0'
dest++;
};
while(*dest++=*src++)
{};
return addr;
功能为比较两个字符串.
实现如下:
if(*str1=='\0')
str1++;
此函数原型为 char *strcpy(char* dest, const char *src)
功能为拷贝字符串内容到目的串,把src所指向的内容拷贝到dest
char *strcpy(char *dest,const char *src)
//assert(dest!=NULLsrc!=NULL);
char *addr=dest;
while(*dest++=*src++);
此函数原型为unsigned in strlen(const char *str)
功能为返回字符串str的长度(不包括'\0').
unsigned int strlen(const char *str)
unsigned len=0;
while(*str!='\0')
len++;
str++;
return len;
char *strchr(char *str, char c)
功能为查找str中首次出现c的位置,如有有,则返回出现位置,否则返回NULL.实现如下:
while(*str!='\0'*str!=c)
return (*str==c? str: NULL);
char *strrchr(char *str, char c)
功能为查找str中最后一次出现c的位置,如有有,则返回出现位置,否则返回NULL.实现如下:
char *p=str+strlen(str);//p指向最后一个字符
while(p!=str*p!=c)
p--;
if(p==str*p!=c)
else return p;
strcspn
原型:size_t strcspn(const char *pstr, const char *strCharset)
MSDN解释为:在字符串pstr中搜寻strCharsret中所出现的字符,返回strCharset中出现的第一个字符在pstr中的出现位置.简单的说,若strcspn返回的数值为n,则代表字符串strCharsrt开头连续有n个字符不包含在pstr内的字符.
功能:返回后面字符串中第一个不在前者出现的下表.
此函数原型为char *strdup(const char *str)
功能为拷贝字符串到新建的内存,返回内存指针.若失败,返回NULL.要注意,返回的指针指向的内存在堆中,所以要手动释放.
函数实现:
char *strdup(const char *str)
char *p=NULL;
if(str(p=(char*)malloc(strlen(str)+1)))
strcpy(p,str);
return p;
此函数的原型为char *strrev(char *str)
功能为反转字符串,返回字符串指针.
char *strrev(char *str)
if(str==NULL)
char *start=str;
char *end=str+strlen(str)-1;
char temp;
while(startend)
temp=*start;
*start=*end;
*end=temp;
start++;
end--;
int length1=strlen(str1);
length1--;
return str1;
str -- 通常,程序员喜欢用它作字符串变量名.它是 string(英文词、字符串的缩写)
Str函数,返回代表一数值的 Variant(String).语法Str(number)必要的 number 参数为一 Long,其中可包含任何有效的数值表达式.说明当一数字转成字符串时,总会在前头保留一空位来表示正负.
如果 number 为正,返回的字符串包含一前导空格暗示有一正号.使用 Format 函数可将数值转成必要的格式,如日期、时间、货币或其他用户自定义格式.与 Str 不同的是,Format 函数不包含前导空格来放置 number 的正负号.
注意 Str 函数只视句点 (.) 为有效的小数点.如果使用不同的小数点(例如,国际性的应用程序),可使用 CStr 将数字转成字符串.
以上就是土嘎嘎小编为大家整理的c语言str函数全相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!