1、strcpy
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main()
{
char *str = "hello";
char *str1 = (char *)malloc(100);
strcpy(str1,str);
printf("%s",str1);
return 0;
}
頭文件:#include <string.h>
功能:搜索一個字符串在另一個字符串中的第一次出現。找到所搜索的字符串,則該函數返回第一次匹配的字符串的地址;如果未找到所搜索的字符串,則返回NULL
strstr
(string,search)
:
string:規定被搜索的字符串。search:規定所搜索的字符串
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main()
{
char *str = "hello";
char *str1 = "I say hello xiaopang";
char *p = strstr(str1,str);
printf("%s",p);
return 0;
}
3、strcat
頭文件:#include
<string.h>
功能:將兩個char類型鏈接
原型:char
*strcat(char *dest,char *src);
把src所指字符串添加到dest結尾處(覆蓋dest結尾處的'\0')並添加'\0'
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main()
{
char *str = "hello";
char *str1 = "I say hello xiaopang";
strcat(str1,str);
printf("%s\n",str1);
return 0;
}
輸出錯誤,把str接在str1後面,必須保證str1空間足夠大,可以方向兩個字符串的長度和
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main()
{
char *str= "hello";
char str1[100] = "I say hello xiaopang ";
strcat(str1,str);
printf("%s\n",str1);
return 0;
}
此時輸出正確4、memset
頭文件:<memory.h>或<string.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main()
{
char str[10]= "hello";
printf("%s\n",str);
memset(str,'\0',strlen(str));
printf("%d,%d,%d,%d\n",str[0],str[1],str[9]);
return 0;
}
功能:memcpy函數的功能是從源src所指的內存地址的起始位置開始拷貝n個字節到目標dest所指的內存地址的起始位置中。函數返回指向dest的指針
頭文件:#include<string.h>
void
*memcpy(void *dest, const void *src, size_t n);
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main()
{
char str[10]= "hello";
char str1[10] = "123";
void *p = memcpy(str1,str,sizeof(char)*6);
printf("%s\n%s\n",str1,p);
return 0;
}
6、puts
puts()函數用來向標準輸出設備(屏幕)寫字符串並換行
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main()
{
char str[10]= "hello";
char *p = "xiaopang";
puts(str);
puts(p);
return 0;
}
7、gets從標準輸入設備讀字符串函數。可以無限讀取,不會判斷上限,以回車結束讀取從stdin流中讀取字符串,直至接受到換行符或EOF時停止,並將讀取的結果存放在buffer指針所指向的字符數組中。換行符不作爲讀取串的內容,讀取的換行符被轉換爲‘\0’空字符,並由此來結束字符串。
<span style="font-family: arial, 宋體, sans-serif; text-indent: 2em; background-color: initial;">了空格會認爲字符串結束,空格後的字符將作爲下一個輸入項處理,但gets()函數將接收輸入的整個字符串直到遇到換行爲止。</span>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main()
{
char str[10];
char str1[10];
gets(str);//可以接收空格
scanf("%s",str1);//空格後內容不再接收
puts(str);
puts(str1);
return 0;
}
8、sprintf頭文件 stdio.h
原型
參數列表
#include <stdio.h>
int main()
{
char *str;
sprintf(str,"%d",12);
return 0;
}
錯誤,沒有爲str申請空間
#include <stdio.h>
#include <stdlib.h>
int main()
{
char *str = (char *)malloc(100);
char str1[20];
sprintf(str,"%d",12);
sprintf(str1, "%-4d %d",12,1234);
printf("%s\n",str);
printf("%s",str1);
return 0;
}
9、sscanf
sscanf()
- 從一個字符串中讀進與指定格式相符的數據。
#include <stdio.h>
#include <stdlib.h>
int main()
{
char *str = "0123456789";
char buffer[10];
sscanf(str,"%5s",buffer);
puts(buffer);
return 0;
}