欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

函数sscanf和snprintf

时间:2023-04-28
浅谈函数sscanf 和 snprintf

【每日一题】- leetcode 537、复数乘法

【思路】虚数构成:a+bi;利用sscanf函数读取实部a和虚部b;再利用snprintf函数将计算后的实部a和虚部b以【%d+%di】输入到字符串中

char * complexNumberMultiply(char * num1, char * num2){ char *ans = (char*)malloc(sizeof(char)*20); int a , b , c, d; //读取实部和虚部 sscanf(num1 , "%d+%di", &a , &b); sscanf(num2 , "%d+%di", &c , &d); int sum1 = a*c - b*d , sum2 = a*d + b*c; //输出实部和虚部 snprintf(ans, 20 ,"%d+%di", sum1,sum2); return ans;}

浅谈函数sscanf 相同点不同点scanfsscanf 与 scanf类似,都是用于输入的scanf 以屏幕(stdin)为输入源sscanfsscanf 与 scanf类似,都是用于输入的sscanf 以目标字符串为输入源

【函数原型】: Int sscanf( string str, string fmt, mixed var1, mixed var2 … );
【使用方式】: snprintf( stdin , format , ans[ ]… , &b… );

stdin表示数据输入源format读取方式可以是一个或多个符号ans[ ]… , &b…读取数据后保存的方式

浅谈函数snprintf 相同点不同点printfprintf 与 snprintf类似,都是用于输出的printf 函数将数据打印到屏幕上snprintfprintf 与 snprintf类似,都是用于输入的snprintf 函数将数据读取到目标位置

【函数原型】: int snprintf(char *restrict buf, size_t n, const char * restrict format, …);
【使用方式】: snprintf( buf , n , format , stdin );

buf表示数据保存的位置format可以是一个或多个符号stdin表示数据输入源

【注意】
(1) 如果格式化后的字符串长度 < n,则将此字符串全部复制到buf中,并给其后添加一个字符串结束符(’’);
(2) 如果格式化后的字符串长度 >= n,则只将其中的(n-1)个字符复制到buf中,并给其后添加一个字符串结束符(’’),不需要考虑溢出的问题,返回值为欲写入的字符串长度。

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。