1.sprintf函数作用为将整型转化为字符串类型
// 判断回文数
bool isPalindrome(int x)
{
char a[200],b[200]={0};
sprintf(a,"%d",x);
int c = strlen(a)-1;
for (int i = 0; a[i]!='\0'; i++)
b[c--] = a[i];
if(strcmp(a,b)==0)
return true;
else
return false;
}
C 库函数 int sprintf(char *str, const char *format, ...) 发送格式化输出到 str 所指向的字符串。
2. strcpy char *strcpy(char *dest, const char *src)
把 src 所指向的字符串复制到 dest。
3.strcat char *strcat(char *dest, const char *src)
把 src 所指向的字符串追加到 dest 所指向的字符串的结尾。
4.strcmp strcmp(string1,string2)
比较两个字符串是否相等
5.strstr (const char* str1, const char* str2)
查找子串的一个函数,
今天在leetcode上又碰到了这种模拟的题目,刚好写下了。
char* my_strstr(const char* str1, const char* str2)
{
assert(str1 && str2);
char *cp = (char*) str1; //利用cp记录 str1的位置信息
char *s1, *s2;
if (!*str2)// 与*s2 == '\0' 等价
return((char*)str1);
while (*cp)
{
s1 = cp;
s2 = (char*) str2;
while (*s1 && *s2 && !(*s1-*s2))//循环直到s1 s2 结束或 s1 != s2
s1++, s2++;
if (!*s2)
return(cp);
cp++;
}
return(NULL);
}
int main()
{
char email[] = "2676887386@qq.com";
char substr[] = "qq";
char* ret = my_strstr(email, substr);
if (ret == NULL)
{
printf("不存在\n");
}
else
{
printf("%s\n",ret);
}
}
int strStr(const char* haystack, const char* needle) {
int end1 = 0;
int end2 = 0;
int len1 = strlen(haystack);
int len2 = strlen(needle);
if(len2 > len1)
{
return -1;
}
int tmp = 0;
int flag = 0;
while (end2 < len2 && end1 < len1)
{
if (haystack[end1] != needle[end2])
{
if (flag == 0)
end1++;
if (flag == 1)
{
end1 = tmp;
end2 = 0;
flag = 0;
tmp = 0;
}
}
else if (haystack[end1] == needle[end2])
{
if (flag == 0)// 利用 tmp 记录第一次相等的位置
{
tmp = end1 + 1;
if(len1 - end1 < len2)
{
tmp = 0;
break;
}
}
end1++;
end2++;
flag = 1;
}
}
return tmp - 1;
}
6.memcpy void *memcpy(void *str1, const void *str2, size_t n)
从存储区 str2 复制 n 个字节到存储区 str1
7.memmove void *memmove(void *str1, const void *str2, size_t n)
从 str2 复制 n 个字符到 str1,
但是在重叠内存块这方面,memmove() 是比 memcpy() 更安全的方法。如果目标区域和源区域有重叠的话,memmove() 能够保证源串在被覆盖之前将重叠区域的字节拷贝到目标区域中,复制后源区域的内容会被更改。如果目标区域与源区域没有重叠,则和 memcpy() 函数功能相同。
即 可以自己复制自己
memcpy 负责拷贝两块独立空间中的数据
重叠内存的拷贝 是用memmove
本文含有隐藏内容,请 开通VIP 后查看