scanf函数
#include <stdio.h>
int main(void)
{
int a,b,c;
printf("请输入三个数字:\n");
scanf("%d%d%d",&a,&b,&c);
//scanf参数
//参数1:用字符串常量表示的输入格式字符串
//参数2:用户输入的数据要送到那里去(地址)
printf("a=%d,b=%d,c=%d\n",a,b,c);
return 0;
}
返回值
scanf("%d %d",&a,&b);
scanf函数返回成功读入的数据项数,读入数据时遇到了“文件结束”则返回EOF。
函数返回值为int型。如果a和b都被成功读入,那么scanf的返回值就是2;
如果只有a被成功读入,返回值为1;
如果a和b都未被成功读入,返回值为0;
如果遇到错误或遇到end of file,返回值为EOF。end of file为Ctrl+z 或者Ctrl+d。
关于scanf_s函数
ANSI C中没有scanf_s(),只有scanf(),scanf()在读取时不检查边界,所以可能会造成内存泄露。所以vc++2005/2008中提供了scanf_s(),在最新的VS编译器中也提供了scanf_s()。在调用时,必须提供一个数字以表明最多读取多少位字符。目前最新的c11标准中已经将scanf_s函数“转正”了。
自定义函数
int sayHello() //函数头
{ //函数体
printf("Hello,World\n");//函数体
return 0; //函数体
} //函数体
自定义函数要放在主函数main的上面,如果在主函数下面,则需要在主函数上面添加函数声明,以上面代码为例,上面代码的函数声明为
int sayHello();
注意,不要将自定义函数定义写在main函数中!
定义一个lengthOfString函数,实现和strlen函数相同的功能
#include <stdio.h>
//计算字符串的长度
//在本函数中,没有通过改变字符串的意图
//可以在char*前面加上const限定符,阻止通过该指针影响字符串的内容
//const表示指针自己的值可以修改,但是不允许你通过它改变它所指向位置的值
int lengrhOfString(const char* srting)
{
int result = 0;
while(*string++ != '\0')
{
result++;
}
return result;
}
字符串的复制
定义一个stringCopy函数
void stringCopy(char* dest, const char* source)
{
while(*source !='\0')
{
*dest = *source;
dest++;
source++;
}
*dest = '\0';
}
版权属于:KrisWi
本文链接:https://blog.aqkx.com/index.php/archives/60/
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。