當前位置:首頁 » 編程語言 » c語言區分單雙位元組來截取字元
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言區分單雙位元組來截取字元

發布時間: 2022-05-08 11:15:22

c語言 在知道兩段字元串的情況下截取中間的字元串

先用strcat拼接好兩個子串,然後再用left方式截取。
C語言中拼接字元串可以使用strcat函數。
1、strcat()函數 ,即string catenate的縮寫
原型:extern char *strcat(char *dest,char *src);
用法:#include <string.h>
功能:把src所指字元串添加到dest結尾處(覆蓋dest結尾處的'\0')並添加'\0'。
說明:src和dest所指內存區域不可以重疊且dest必須有足夠的空間來容納src的字元串。
返回指向dest的指針。
2、舉例:

#include <stdio.h>
#include <string.h>
int main(){
char d[20]="字元串1"; //第一個字元串
char *s=" 字元串2"; //第二個字元串
strcat(d,s); //拼接兩個字元串,結果保存在第一個字元串當中
printf("%s",d); //輸出拼接結果:"字元串1字元串2"
getchar();
return 0;
}
3、c語言截取字元串方法:

#include <stdio.h>
#include <string.h>

/*從字元串的左邊截取n個字元*/
char * left(char *dst,char *src, int n)
{
char *p = src;
char *q = dst;
int len = strlen(src);
if(n>len) n = len;
/*p += (len-n);*/ /*從右邊第n個字元開始*/
while(n--) *(q++) = *(p++);
*(q++)='\0'; /*有必要嗎?很有必要*/
return dst;
}

❷ C語言。截取字元串

#include<stdio.h>
#include<string.h>
#include<ctype.h>
voidprint(chars[],intn,intm)
{
intk;
inti;
char*p;
k=strlen(s);
p=s;
for(i=n-1;i<n-1+m;i++)//從第n-1位置開始,截取m個字元
putchar(*(p+i));
printf(" ");

}
voidmain()
{
char*s,str[20];
intm,n;
printf("pleaseinputastring: ");
s=str;
gets(s);
printf("thestringis:");
puts(s);
printf("pleaseinputnandm ");
scanf("%d%d",&n,&m);
print(s,n,m);
}

❸ C語言截取指定字元串

可改變數組大小,滿足你可能的輸入狀況。

#include<stdio.h>

int main(){char str[200]; // 假定輸入1行字元串,長度在200以內char s[20][16]; // 假定 用逗號分隔的部分約20個。

每個長度 不超過16字元double d; // 假定數據個數 不超過 20 個int i,j=0,L,n=0;fgets(str,200,stdin)。

// 讀入一行 字元串,含換行符L = strlen(str)。

//計算輸入的字元串長度for (i=0;i<L;i++){s[n][j]=str[i]; j++;if (str[i]==',' || str[i]==' ') {s[n][j-1]=''; j=0; n++;} // 取出逗號分隔開的字元串}

(3)c語言區分單雙位元組來截取字元擴展閱讀:

C語言繼續發展,在1982年,很多有識之士和美國國家標准協會為了使這個語言健康地發展下去,決定成立C標准委員會,建立C語言的標准。委員會由硬體廠商、編譯器及其他軟體工具生產商、軟體設計師、顧問、學術界人士、C語言作者和應用程序員組成。

1989年,ANSI發布了第一個完整的C語言標准——ANSI X3.159—1989,簡稱「C89」,不過人們也習慣稱其為「ANSI C」。

C89在1990年被國際標准組織ISO(International Standard Organization)一字不改地採納,ISO官方給予的名稱為:ISO/IEC 9899,所以ISO/IEC9899: 1990也通常被簡稱為「C90」。

1999年,在做了一些必要的修正和完善後,ISO發布了新的C語言標准,命名為ISO/IEC 9899:1999,簡稱「C99」。在2011年12月8日,ISO又正式發布了新的標准,稱為ISO/IEC9899: 2011,簡稱為「C11」。

❹ c語言如何截取字元串的一部分

用strncpy函數,函數簽名
char * strncpy(char *dest, const char *src, size_t n);
比如要是從src第2個字元開始截取3個字元,可以用
strncpy(dest, src + 2 - 1, 3);

❺ 試嘗試用C語言寫一個獲取字元串長度的子函數,要求能自動識別字元串中的字元是單位元組字元還是雙位元組字元。

#include<stdio.h>
void strlength(unsigned char *str)
{
int len=0,d=0,s=0;
while(*str)
{
if((*str)&0x80) s++;
else d++;
len++;
str++;
}
printf("字元串長度:%d, 其中單位元組:%d, 雙位元組:%d\n",len,d,s);
}
void main()
{
unsigned char str[30]="我愛你,中國!";
strlength(str);
}

❻ C語言截取字元串

這個你只能寫個循環自己判斷了,示例代碼如下

charstr[]="<1,2>,<3,4>,<4,5>";
intnum[10];
intindex=0;
inti;
for(i=0;i<strlen(str);i++)
{
if(str[i]>='0'&&str[i]<='9')//如果是字元0-9
num[index++]=str[i]-'0';//字元轉換為數字,放到int類型的數組
}

❼ c語言截取字元

#include <stdio.h>
#include <string.h>

// 用逗號分隔字元串,結果從parr中返回,函數返回值是parr中有效大小
// 調用時請保證parr足夠大
// 函數中用到strtok,需要注意此函數是不能在多線程中使用的。
int SplitStr(char *buff, char *parr[])
{
char *pc = strtok(buff, ",");
int i;

for(i=0; pc != NULL; i++)
{
parr[i] = pc;
pc = strtok(NULL, ",");
}

return i;
}

int main ()
{
// buff是測試數據,實際應用中可以從文件中一行行讀出
char buff[] = "$GPGGA,045950.00,A,3958.46258,N,11620.55662,E,0.115 ";
printf ("%s\n", buff);

// 定義一個指針數組,用以返回分隔結果
char *parr[100] = {NULL};

// 調用分隔函數,返回值欄位數
int num = SplitStr(buff, parr);

// 測試分隔結果
for (int i=0; i<num; i++)
printf("%d:<%s>\n", i, parr[i]);

return 0;
}

❽ 用C語言截取字元串

如果允許使用庫函數,那麼實際這個非常簡單:

#include<string.h>
#include<stdio.h>
voidparse_str(char*str)
{
char*s=NULL,*p;
if(str[0]!='s'||str[1]!='!')
return;
s=strp(str+2);
p=strtok(s,":");
while(p)
{
printf("%s ",p);
p=strtok(NULL,":");
}
free(s);
}

❾ c語言中對字元串截取的函數!

  1. 根據單個分隔字元用split截取

string st="GT123_1";
string[] sArray=st.split("_");

即可得到sArray[0]="GT123",sArray[1]="1";

2.利用多個字元來分隔字元串

tring str = "GTAZB_JiangjBen_123";
string[] sArray = str.Split(new char[2] { 'j', '_' });
foreach(string e in sArray)
{
Console.WriteLine(e);
}

得到sArray[0]="GTAZB",sArray[1]="Jiang",sArray[2]="Ben",sArray[3]="123";

3根據字元串或字元串組來截取字元串

string str = "GTAZB_JiangjBen_123";
string[] sArray = str.Split( new string[]{"Ji","jB"}, StringSplitOptions.RemoveEmptyEntries);
foreach(string e in sArray)
{
Console.WriteLine(e);
}

得到sArray[0]="GTAZB_",sArray[1]="ang",sArray[2]="en_123";

4提取字元串中的第i個字元開始的長度為j的字元串;

string str = "GTAZB_JiangjBen_123";
int start=3,length=8;
Console.WriteLine(str.Substring(start-1, length));

❿ C語言函數字元串截取分割

C標准庫中提供了一個字元串分割函數strtok();

實現代碼如下:

#include<stdio.h>

#include<string.h>

#defineMAXSIZE1024

intmain(intargc,char*argv[])

{

chardates[MAXSIZE]="$GPGGA,045950.00,A,3958.46258,N,11620.55662,E,0.115,,070511,,,A*76";

char*delim=",";

char*p;

printf("%s",strtok(dates,delim));

while(p=strtok(NULL,delim))

{

printf("%s",p);

}

printf(" ");

return0;

}

運行結果截圖如下: