sscanf實用功能簡介
阿新 • • 發佈:2021-01-09
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;
}
以上介紹的只是一些較為簡單實用的功能