1. 指定した長さの文字列を左から切り出す
コード関数: 文字列の先頭から、指定された長さの文字をインターセプトします。
#include <stdio.h>
#include <wiringPi.h>
int main()
{
char arr[128] = {'\0'};
int i = 0;
printf("input a data\n");
scanf("%s",arr);
for(i=0;i<3;i++){ //截取前三个字符
printf("%c",arr[i]);
}
return 0;
}
操作結果:
input a data
hurytdxcgf
hur
2. 指定した長さの文字列を右から切り出す
コード関数: 文字列の末尾から、指定された長さの文字をインターセプトします。
#include <wiringPi.h>
#include <string.h>
int main()
{
char arr[128] = {'\0'};
int i = 0;
printf("input a data\n");
scanf("%s",arr);
int len = strlen(arr);
printf("len=%d\n",len);
for(i=len;i>(len-3);i--){
printf("%c",arr[i]);
}
return 0;
}
操作結果:
input a data
asfafg
len=6
gf
3. strstr を使用して文字列を検索する
コード関数: 文字列に文字「s」が含まれているかどうかを確認します。
#include <stdio.h>
#include <wiringPi.h>
#include <stdio.h>
#include <wiringPi.h>
#include <string.h>
int main()
{
char arr[128] = {'\0'};
char *p = "s";
printf("input a data\n");
scanf("%s",arr);
if(strstr(arr,p) == NULL){
printf("not find position\n");
}else{
printf("middle positiom\n");
}
return 0;
}
出力結果:
input a data
dsfgfda
middle positiom
4. strtok 関数を使用して、指定された文字の後のデータをインターセプトします。
コード関数: 文字「d」以降のすべてのデータをインターセプトします。
#include <stdio.h>
#include <wiringPi.h>
#include <string.h>
#include <stdlib.h>
int main()
{
char arr[128] = {'\0'};
char *pos_state = "d";
char *token;
printf("input a data\n");
scanf("%s",arr);
if(strstr(arr,pos_state) == NULL){
printf("not find position\n");
}else{
printf("middle positiom\n");
}
char *buf = strstr(arr,pos_state);
token = strtok(buf, "d");
printf("distance=%s\n",token);
token = strtok(NULL, "d");
return 0;
}
操作結果:
input a data
abcd123
middle positiom
distance=123