字符串
- 字符和字符串赋值
char arr[10] = {'a','x','s','w','e','r','t'}; //未赋值的按0填满 char buf[10] = "gjdhajgfg"; //字符串以\0结尾,不显示 小知识:getchar()有吸收字符的作用
- get()和put()
get() //从键盘输入,可以接收输入的空格,此函数由bug,编译有警告不建议使用 puts() //输出字符串,自动换行,无需换行符
- fgets()和fputs()
fgets() //获得数据 fputts() //输出数据,自动换行
#include<stdio.h>
int main()
{
char arr[128];
printf(input string:);
fgets(arr, sizeof(arr), stdin); //stdin标准输入,sizeof(arr)也可以是常量
fputs(arr, stdout) //stdout 标准输出
return 0;
}
#include<stdio.h>
int main()
{
char *p = "hello, 2017!"; //字符串常量地址直接赋值
printf("%s\n", p);
p = "hi, shanghai!"
printf("%s\n", p);
p[2] = 't'; //ERROR,常量不可变
printf("%s\n", p);
return 0;
}
#include<stdio.h>
int main()
{
char arr[32] ="tomorrow!";
char buf[32] = "today!";
//统计数组arr中字符串长度,“\0” 不计入长度中,sizeof(arr)统计定义的长度
strlen(arr);
int ret1 = strcmp(arr,buf); //arr和buf逐个字符比较
printf("ret1 = %d\n",ret); //结果非0
int ret2 = strcmp(buf,arr); //和上面的比较结果相反
printf("ret2 = %\nd",ret2);
char buf1[32] = "yestoday";
int ret3 = strcmp(buf,buf1);
printf("ret3 = %d\n",ret3); //比较结果为0
strcat(arr,buf); //将buf中内容拼接到arr中,注意arr空间要能放进buf
printf("arr = %s\n",arr);
strcpy(arr,buf); //将buf中内容拷贝到arr中
printf("arr = %s\n", arr);
return 0;
}