1. 程式人生 > 其它 >sscanf實用功能簡介

sscanf實用功能簡介

技術標籤:C語言小知識c語言

sscanf實用功能簡介

1.適用範圍:適用於對某一字串特定要求取值。
2.基本格式:sscanf(某一字串的地址, “取值條件”, 儲存地址);
3.取值條件的種類:
(1)全取(只能取到第一個空格處):%s.(與%[^ ]等價,%[^ ]表示到第一個空格處)

#include<stdio.h>
int main()
{
	char a[100]={"hello world"};
	sscanf(a,"%s",a);
    printf("%s\n",a);
    return
0; }
#include<stdio.h>
int main()
{
	char a[100]={"hello world"};
	sscanf(a,"%[^ ]",a);
    printf("%s\n",a);
    return 0;
}

在這裡插入圖片描述
(2)取指定長度的字串(也只能到第一個空格處):%ns(表示第幾個)

#include<stdio.h>
int main()
{
	char a[100]={"hello world"};
	sscanf(a,"%3s",a)
; printf("%s\n",a); return 0; }

在這裡插入圖片描述
(3)取到指定字元之前一個字元的字串:%[^ 特定字元]

#include<stdio.h>
int main()
{
	char a[100]={"hello world"};
	sscanf(a,"%[^ l]",a);
    printf("%s\n",a);
    return 0;
}

在這裡插入圖片描述
(4)取到指定字符集前一個(或一類)的字串:%[首字元-指定字元]或%[^A-Z](這指一類,從A-Z這些大寫字母)。

#include
<stdio.h>
int main() { char a[100]={"123456abcdedfBCDEF"}; sscanf(a,"%[1-b]",a); printf("%s\n",a); return 0; }

在這裡插入圖片描述

#include<stdio.h>
int main()
{
	char a[100]={"123456abcdedfBCDEF"};
	sscanf(a,"%[^A-Z]",a);
    printf("%s\n",a);
    return 0;
}

在這裡插入圖片描述
(5)獲取兩特定符號字元之間的字串:%*[特定符號]/%[特定符號](注意:是特定符號,而不是數字或字母)

#include<stdio.h>
int main()
{
	char a[100]={"34fe/hello world/sfsd"};
	sscanf(a,"%*[^/]/%[^/]",a);
    printf("%s\n",a);
    return 0;
}

在這裡插入圖片描述
(6)讀取空格後的內容:%*s%s。
*表示過濾掉一個字串

#include<stdio.h>
int main()
{
	char a[100]={"hello world"};
	sscanf(a,"%*s%s",a);
    printf("%s\n",a);
    return 0;
}

在這裡插入圖片描述

#include<stdio.h>
int main()
{
	char a[100]={"hello world 2021"};
	sscanf(a,"%*s%*s%s",a);
    printf("%s\n",a);
    return 0;
}

在這裡插入圖片描述

以上介紹的只是一些較為簡單實用的功能