sscanf()分割字符数组

sscanf与scanf类似,都是用于输入的,只是后者以键盘(stdin)为输入源,前者以固定字符串为输入源。

头文件:

#include<stdio.h> 或者 #include <cstdio>

用法:

注意:首先应该注意的是 sscanf()只能对字符数组进行操作,但是不能对string字符串操作

一.读入指定数据:

https://www.cnblogs.com/tiancun/p/7831100.html

二.分割数据:

(1)最简单的其实是默认的用法,比如

sscanf(ch,"%s%s",a,b); 其中a,b为字符数组,最简单的分割方式

(2)分割含有整数的时候比较简单也很好用:

scanf("%d+%d",&a,&b);

sscanf(c,"%d+%d=%d",&m,&n,&p)直接这样用就行

三.应用

int a, b, c; 
  sscanf("2006:03:18", "%d:%d:%d", a, b, c); 
  以及2006:03:18 - 2006:04:18: 
  char sztime1[16] = "", sztime2[16] = ""; 
  sscanf("2006:03:18 - 2006:04:18", "%s - %s", sztime1, sztime2); (此种用法结合网址:)
  但是后来,我需要处理2006:03:18-2006:04:18 
  仅仅是取消了‘-’两边的空格,却打破了%s对字符串的界定。 
  我需要重新设计一个函数来处理这样的情况?这并不复杂,但是,为了使所有的代码都有统一的风格,我需要改动很多地方,把已有的sscanf替换成我自己的分割函数。我以为我肯定需要这样做,并伴随着对sscanf的强烈不满而入睡;一觉醒来,发现其实不必。
  format-type中有%[]这样的type field。如果读取的字符串,不是以空格来分隔的话,就可以使用%[]。 
  %[]类似于一个正则表达式。[a-z]表示读取a-z的所有字符,[^a-z]表示读取除a-z以外的所有字符。 
  所以那个问题也就迎刃而解了: 
  sscanf("2006:03:18 - 2006:04:18", "%[0-9,:] - %[0-9,:]", sztime1, sztime2)

原文地址:https://www.cnblogs.com/Aiahtwo/p/10352846.html

时间: 2024-10-27 10:46:19

sscanf()分割字符数组的相关文章

字符串分割到二维字符数组中:

/* *字符串分割,把一个长的字符串(可能有空格),分割到一个二维字符数组中. *并且输出 * *时间复杂度O(N) *注意在操作二维字符串数组时:使用"数组指针"操作能方便 int(*p)[LEN]; * */ #include<stdio.h> #include<string.h> #include<stdlib.h> #include<stdbool.h> #define NDEBUG #include<assert.h>

php把字符串指定字符分割成数组

<?php $str="1|2|3|4|5|"; $var=explode("|",$str); print_r($var); ?> $var=explode("|",$str);把$str按|进行分割php还有其他的把字符串指定字符分割成数组str_split(string,length)参数 描述 string 必需.规定要分割的字符串. length 可选.规定每个数组元素的长度.默认是 1. json_decode()这个函数

JavaScript基础 split(&quot;&quot;) 将字符串分割成字符数组

镇场诗: 清心感悟智慧语,不着世间名与利.学水处下纳百川,舍尽贡高我慢意. 学有小成返哺根,愿铸一良心博客.诚心于此写经验,愿见文者得启发.------------------------------------------ code: 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=ut

C语言字符数组与字符串

5.5.1 字符数组与字符串区别 l  C语言中没有字符串这种数据类型,可以通过char的数组来替代: l  字符串一定是一个char的数组,但char的数组未必是字符串: l  数字0(和字符'\0'等价)结尾的char数组就是一个字符串,但如果char数组没有以数字0结尾,那么就不是一个字符串,只是普通字符数组,所以字符串是一种特殊的char的数组. 1 #include <stdio.h> 2 3 4 5 int main() 6 7 { 8 9 char c1[] = { 'c', '

JS中,split()用法(将字符串按指定符号分割成数组)

<!DOCTYPE html> <html> <head> <meta charset="{CHARSET}"> <title></title> </head> <body> </body> <script type="text/javascript"> //在Javascript脚本中,将字符串按指定符号进行分割成数组用split()的方法 //

php对UTF8字体串进行单字分割返回数组

在网上查了很多字符串分割方法,都无法正确对UTF8字符串进行正确分割返回单个字符的数组.经过对FTU8编码的分析写出了下面的方法对UTF8进行分割.本人测试可用.本方法只支持UTF8编码的,其它编码转自行转换成UT8再使用. $tempaddtext="http://www.jishubu.net php对UTF8字体串进行单字分割返回数组"; //$tempaddtext=iconv("GBK","UTF-8",$tempaddtext); /

java 字符串,字符数组,list间的转化

1.关于java.lang.string.split xxx.split()方法可以将一个字符串分割为子字符串,然后将结果作为字符串数组返回. 2.字符串转字符数组 String str =" aa.png,a2.png,a3.png"; String[] arrayStr =new String[]{}; arrayStr = str.split(","); 3.字符数组转list List list = java.util.Arrays.asList(array

字符数组以及类型对字符串数组以及类型的转换

1.字符串转换为字符数组:char [ ]  CHars = Str(字符串对象名).toCharArray(); 2.字符数组转换为字符串:String Str =  String(sring 类名).valueOf(char[]  CHars)  ; 3.单个字符转换为字符串:String Str = Character.toString('a'); 4.获取字符串中指定位置的单个字符: char C=Str(支符串对象名). charAt(位置索引); 5.获取字符串中指定位置的子字符串:

C++中字符数组和字符串string

字符数组 C++中字符数组用char str[]可以用来表示一个字符串. (1)   数组的大小和字符串的长度. 数组的大小一定要大于字符串的长度,因为系统会自动补上一个'\0'作为字符串的结束标志.当然对于未初始化的也补'\0'. #include <iostream> #include <string> using namespace std; int main() { char str[11] = "I am happy"; // 系统会自动补上'\0'空