STL :sscanf sprintf的应用

PAT 1054

网上看到的,很好的应用了这两个函数。


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

#include <bits/stdc++.h>

using namespace std;

int main() {

    int n, cnt = 0;

    char a[50], b[50];

    double temp, sum = 0.0;

    cin >> n;

    for(int i = 0; i < n; i++) {

        scanf("%s", a);

        sscanf(a, "%lf", &temp);  //从一个字符串中读进与指定格式相符的数据

        sprintf(b, "%.2lf",temp); //字符串格式化命令,主要功能是把格式化的数据写入某个字符串中

        int flag = 0;

        for(int j = 0; j < strlen(a); j++) {

            if(a[j] != b[j]) {

                flag = 1;

            }

        }

        if(flag || temp < -1000 || temp > 1000) {

            printf("ERROR: %s is not a legal number\n", a);

            continue;

        else {

            sum += temp;

            cnt++;

        }

    }

    if(cnt == 1) {

        printf("The average of 1 number is %.2lf", sum);

    else if(cnt > 1) {

        printf("The average of %d numbers is %.2lf", cnt, sum / cnt);

    else {

        printf("The average of 0 numbers is Undefined");

    }

    return 0;

}

时间: 2024-12-24 07:28:41

STL :sscanf sprintf的应用的相关文章

sscanf,sprintf用法

#include<string.h> #include<stdio.h> int main() { char buf[512],sztime1[16],sztime2[16]; sscanf("123456 ", "%s", buf);//此处buf是数组名,它的意思是将123456以%s的形式存入buf中! printf("%s\n", buf); sscanf("123456 ", "%4

sscanf sprintf sstream

1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <string.h> 4 5 static void sscanf_test(void); 6 7 static void sscanf_test(void) 8 { 9 int ret; 10 char *string; 11 int digit; 12 char buf1[255]; 13 char buf2[255]; 14 char buf3[255];

C语言--&gt;(十三)字符串

知识点: 1.字符和字符处理函数 2.字符串的本质和字符串输入输出函数 3.字符串转换函数 4.常用字符串处理函数 5.字符串查找函数 6.字符串分割函数 7.字符串替换 8.常用字符串处理函数实现 9.sscanf sprintf函数 ================================C中必须先定义类型后使用,没有字符串类型,字符串用一串字符,基本元素是字符 “xiaoqiang\0” 字符和字符处理1常用字符 数字字符: ‘0’ ‘1’ — ‘9’字母字符:’M’ ‘F’ ‘a

IOS-C_Day11___字符串

2015.2.2 #include <stdio.h> #include <ctype.h> //字符操作的函数 //int     isalnum(int); //int     isalpha(int); //int     isdigit(int); //int     isgraph(int); //int     islower(int); //int     ispunct(int); //int     isspace(int);//判断是否为空格 //int    

String Formatting in C#

原文地址 http://blog.stevex.net/string-formatting-in-csharp/ When I started working with the .NET framework, one thing puzzled me. I couldn’t find sprintf(). sprintf() is the C function that takes an output buffer, a format string, and any number of argu

PAT 1108 Finding Average

The basic task is simple: given N real numbers, you are supposed to calculate their average. But what makes it complicated is that some of the input numbers might not be legal. A legal input is a real number in [?1000,1000] and is accurate up to no m

C语言sscanf和sprintf输入输出使用及Strlen、Memset解释

sscanf() - 从一个字符串中读进与指定格式相符的数据. swscanf()- 用于处理宽字符字符串,和sscanf功能相同 通过学习和使用个人认为,在字符串格式不是很复杂,但是也并不简单的时候用这个函数比较合适,这个尺度就要靠自己把握了,字符串不是很复杂,但自己写个处理的函数比较麻烦,效率也不高,就用这个函数,如果字符串很复杂,那就用正则表达式吧. 不多说了,看看下面这些介绍和列子吧! 名称:sscanf() - 从一个字符串中读进与指定格式相符的数据. 函数原型: Int sscanf

sscanf及sprintf

在程序中,我们肯定会遇到许多处理字符串的操作,当然C++中的string类已经做了很好了,但是也不要忘了C中的sscanf和sprintf 这两个函数用法跟printf和scanf用法很相似,只不过数据源和数据目的地从标准输入输出转换成了内存中的字符串. int sscanf ( const char * s, const char * format, ...); 1 /* sscanf example */ 2 #include <stdio.h> 3 4 int main () 5 { 6

sscanf和sprintf是scanf和printf家族用法 (转)

sscanf和sprintf是scanf和printf家族用法 sscanf和sprintf是scanf和printf家族的一对成员,用于处理和分析字符串非常强大得两个函数头文件 stdio.h原型int sscanf(const char *buffer,const char *format,...);int sprintf(char *buffer,const char *format,...);功能:类似于scanf和printf 但把字符串*buffer用于输入输出1.sprintf用于