gets
获取用户从键盘输入的字符串.
例子
#include <stdio.h>
int main(){
char str[100];
printf("Input Something: ");
gets(str);
puts(str);
return 0;
}
运行结果:
Input Something: Hello World
Hello World
当输入的字符串中含有空格时,输出仍为全部字符串。说明 gets 函数并不以空格作为字符串输入结束的标志,而只以回车作为输入结束.
strlen
将返回字符串的整数长度。
例子
#include <stdio.h>
#include <string.h>
int main(){
char str="hello world";
int len = strlen(str);
printf("The lenth of the string is %d\n", len);
return 0;
}
运行结果:
The lenth of the string is 11
需要说明:
- 要添加 #include<string.h>
- strlen 会从字符串的第 0 个字符开始计算,直到遇到字符串结束标志 '\0'。
strcat
把两个字符串拼接在一起
例子
#include <stdio.h>
#include <string.h>
int main(){
char str1[40]="welcome back ";
int str2[20];
printf("Input your name:");
gets(str2);
strcat(str1,str2);
puts(st1);
return 0;
}
运行结果:
Input your name:hejing
welcome back hejing
需要说明:
- strcat 将把 str2 连接到 str1后面,并删去 str1 最后的结束标志 '\0'。这就意味着,str1 的长度要足够,必须能够同时容纳 str1 和 str2,否则会越界.
- strcat 返回值为 str1 的首地址
**strcpy **
字符串复制
例子
#include <stdio.h>
#include <string.h>
int main(){
char str1[15], str2="C Language";
strcpy(str1, str2);
puts(str1);
printf("\n");
return 0;
}
运行结果:
C Language
需要说明
- strcpy 会把 str2中的字符串拷贝到 str1中,串结束标志 '\0' 也一同拷贝。
- 要求str1有足够长度,否则不能全部装入所拷贝的字符串。
strtok
分解字符串为一组标记串。s为要分解的字符串,delim为分隔符字符串。
例子
/* strtok example */
#include <stdio.h>
#include <string.h>
int main (void)
{
char str[] = "- This, a sample string.";
char *pch;
printf("Splitting string \"%s\" into tokens:\n", str);
pch = strtok(str," ,.-");
while (pch != NULL)
{
printf("%s\n", pch);
pch = strtok(NULL, " ,.-");
}
printf("at the end: %s", str);
return 0;
}
运行结果
Splitting string "- This, a sample string." into tokens:
This
a
sample
string
the end: - This
说明:strtok()用来将字符串分割成一个个片段。当strtok()在参数s的字符串中发现到参数delim的分割字符时则会将该字符改为 \0 字符。在第一次调用时,strtok()必需给予参数s字符串,往后的调用则将参数s设置成NULL。每次调用成功则返回被分割出片段的指针。当没有被分割的串时则返回NULL。所有delim中包含的字符都会被滤掉,并将被滤掉的地方设为一处分割的节点。
strstr
从字符串 str1 中寻找 str2 第一次出现的位置(不比较结束符NULL),如果没找到则返回NULL。
例子
/* strstr example */
#include <stdio.h>
#include <string.h>
int main ()
{
char str[] = "This is a simple string";
char *pch;
pch = strstr(str, "simple");
strncpy(pch, "sample", 7);
puts(pch);
puts(str);
return 0;
}
运行结果
sample string
This is a sample string
其他一些函数
strncpy
函数原型charstrncpy(chardest,char*src,size_tn);
复制字符串src中的内容(字符,数字、汉字....)到字符串dest中,复制多少由size_tn的值决定。
strcmp
原型 int strcmp ( const char * str1, const char * str2 );
功能:比较字符串 str1 和 str2。
说明:
当s1<s2时,返回值<0
当s1=s2时,返回值=0
当s1>s2时,返回值>0
...