接受字符:getchar();
创新互联专注于企业全网整合营销推广、网站重做改版、瑞昌网站定制设计、自适应品牌网站建设、H5技术、商城开发、集团公司官网建设、外贸营销网站建设、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为瑞昌等各大城市提供网站开发制作服务。
输出字符:putchar();
不过每次只能接受输出一个字符.
char *fun(char *a, int len, char c)//函数功能返回字符串a中第一个以字符c开头的字串
{
int i;
char *p=a;
for(i=0;ilen;i++)
{
if(*p==c)
{
break;
}
p++;
}
if(i==len)
{
printf("没有匹配!\n");
return null;
}
else
{
return p;
}
}
int main()
{
char s[10]="abcdefghi";
char in;
char *p;
printf("输入你要匹配的字符:");
scanf("%c", in);
p=fun(s, 10, in);
printf("result:%s",p);
return 0;
}
gets,scanf都会在末尾加上\0的,要不然字符串就没法结束了;
他们的不同在于,scanf碰到缓冲区里面的空字符(空格,tab,回车,换行就会截断并添加\0),而gets是要等回车才截断字符串并添加\0的;
比如用输入字符串:abcdefg hijk回车;
用scanf的话,会得到abcdefg,而gets则是:abcdefg hijk。
C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。
二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言制定了一套完整的美国国家标准语法,称为ANSI C,作为C语言最初的标准。目前2011年12月8日,国际标准化组织(ISO)和国际电工委员会(IEC)发布的C11标准是C语言的第三个官方标准,也是C语言的最新标准,该标准更好的支持了汉字函数名和汉字标识符,一定程度上实现了汉字编程。
字符串的函数很多,有输入/输出函数:gets()/puts(),有拷贝函数strcpy(),字符串连接函数:strcat(),字符串比较函数strcmp(),测长度函数:strlen(),大小写转换:strlwr()/strupr()等等,如果调用的话,都要在头文件加预处理命令:
#include
“string.h”。
scanf将接收到的回车扔回到缓冲区,gets将接收到的回车符号转变为\0存入str,使用gets不检查字符串是否超出大小,存在安全问题,建议用fgets
#include stdio.h
#include string.h
int main(void){
char str1[10]="aaaaaaaaa",str2[10]="bbbbbbbbb";
scanf("%s",str1);
// getchar();
gets(str2);
return 0;
}
这里面的getchar()就是为了接收扔回到缓冲区的回车,否则,str2只能接收到一个回车符。
5 scanf("%s",str1);
(gdb) s
abcdef
(gdb) p str1
$1 = "abcdef\000aa"
(gdb) p str2
$2 = "\000bbbbbbbb"
1、可以写一个函数接受一个字符串和一个字符,如果此字符出现在字符串中,就将串中的字符删除,要求删除该字符后,后续的字符向前移,以填充该空位。
2、例程:
#includestdio.h
#includestring.h
#define MAX 80
void Delete(char str[],char c)
{
int i;
int l=strlen(str);
for(i=0;il;i++)
{
if(str[i] == c)
{
int j;
for(j=i;jl;j++)
str[j]=str[j+1];
break;
}
}
}
int main()
{
char str[MAX],c;
printf("输入一个字符串:");
gets(str);
printf("输入一个字符:");
c=getchar();
Delete(str,c);
puts(str);
return 0;
}