c語言串函數
A. c語言中對字元串截取的函數!
你是想把所有b輸出呢還是只輸出一個?還是截取?下次問清楚點吧
for(i=0;i<100;i++)
{
if(a[j]=='b')
{
printf("%c",a[i]);
}
這是所有的
for(i=0;i<100;i++)
{
if(a[j]=='b')
{
printf("%c",a[i]);
break;
}
只輸出一個b的
如果是遇到b然後截取成7段(6個b)
用函數
sscanf("a,%[^_]b%s",a,b,c,d,e,f,g); //第一個b可以改成你想要分割的關鍵字
頭文件是#include<stdio.h>
截取後的字元串分別存在abcdefg字元串中,abcdefg要先定義
B. C語言關於字元串的操作函數有哪些
string.h頭文件中包含的字元串函數
void*memcpy(void*dest,constvoid*src,size_tn);//將n位元組長的內容從一個內存地址復制到另一個地址;如果兩個地址存在重疊,則最終行為未定義
void*memmove(void*dest,constvoid*src,size_tn);//將n位元組長的內容從一個內存地址復制到另一個地址;與memcpy不同的是它可以正確作用於兩個存在重疊的地址
void*memchr(constvoid*s,charc,size_tn);//在從s開始的n個位元組內查找c第一次出現的地址並返回,若未找到則返回NULL
intmemcmp(constvoid*s1,constvoid*s2,size_tn);//對從兩個內存地址開始的n個字元進行比較
void*memset(void*,int,size_t);//用某種位元組內容覆寫一段內存空間
char*strcat(char*dest,constchar*src);//在字元串dest之後連接上src
char*strncat(char*dest,constchar*src,size_tn);//從src截取n個字元連接在字元串dest之後,返回dest字元串
char*strchr(constchar*str,intch);//從字元串str頭開始查找字元ch首次出現的位置
char*strrchr(constchar*str,intch);//從字元串str尾開始查找字元ch首次出現的位置
intstrcmp(constchar*,constchar*);//基於字典順序比較兩個字元串
intstrncmp(constchar*,constchar*,size_t);//基於字典順序比較兩個字元串,最多比較n個位元組
intstrcoll(constchar*,constchar*);//基於當前區域設置的字元順序比較兩個字元串
char*strcpy(char*str1,constchar*str2);//將str2拷貝給str1
char*strncpy(char*str1,constchar*str2,size_tn);//截取str2的n個字元拷貝給str1
char*strerror(int);//返回錯誤碼對應的解釋字元串,參見errno.h(非線程安全函數)
size_tstrlen(constchar*);//返回一個字元串的長度
size_tstrspn(constchar*s,constchar*strCharSet);//從字元串s的起始處開始,尋找第一個不出現在strCharSet中的字元,返回其位置索引值。換句話說,返回從字元串s的起始位置的完全由strCharSet中的字元構成的子串的最大長度。strspn為stringspan的縮寫。不支持多位元組字元集。
size_tstrcspn(constchar*s,constchar*strCharSet);//從字元串s的起始處開始,尋找第一個出現在strCharSet中的字元,返回其位置索引值。換句話說,返回從字元串s的起始位置的完全由不屬於strCharSet中的字元構成的子串的最大長度。strcspn為stringcomplementspan的縮寫。不支持多位元組字元集。
char*strpbrk(constchar*s,constchar*strCharSet);//在字元串s中查找strCharSet中任意字元第一次出現的位置的指針值。strpbrk為stringpointerbreak縮寫。不支持多位元組字元集。
char*strstr(constchar*haystack,constchar*needle);//在字元串haystack中查找字元串needle第一次出現的位置,heystack的長度必須長於needle
char*strtok(char*strToken,constchar*strDelimit);//將一個字元串strToken依據分界符(delimiter)分隔成一系列字元串。此函數非線程安全,且不可重入;但MSVC實現時使用了thread-localstaticvariable因而是線程安全的單仍然是不可重入,即在單線程中不能對兩個源字元串交替調用該函數來分析token,應當對一個字元串分析完成後再處理別的字元串。
size_tstrxfrm(char*dest,constchar*src,size_tn);//根據當前locale轉換一個字元串為strcmp使用的內部格式
C. C語言字元串操作函數
char
s1[256]="abcdefg";
char
s2[256]="123456";
strupr(s1)
//變大寫襲s1就是
ABCDEFG
strlwr(s1)
//變小寫s1就是
abcdefg
strlen(s1)
//求長度
返回6
strcpy(s1,s2)
//拷貝後s1="123456"
strcat(s1,s2) //連接s1="abcdefg123456"
strcmp(s1,s2) // 比大小
s1大就返回1
s1小就返回-1
一樣大就返回0
D. C語言:幾個簡單的字元串函數
//每個函數運行,input char從鍵盤輸入一個要處理的字元串,此程序在vc6.0上編譯運行都通過
#include <stdio.h>
fun1(char a[100])
{
char ch;
int n,i=0;
printf("input char:\n");
ch=getchar();
while(ch!='\n')
{
a[i++]=ch;
ch=getchar();
}
n=i;
for(i=0;i<n;i++)
if(a[i]!=a[i+1])
printf("%c",a[i]);
}
fun2(char a[100])
{
char ch;
int n,i=0;
printf("input char:\n");
ch=getchar();
while(ch!='\n')
{
a[i++]=ch;
ch=getchar();
}
n=i;
for(i=0;i<3;i++)
if('a'<=a[i]<='z')
printf("%c",a[i]-32);
else
printf("%c",a[i]);
printf("\n");
}
fun3(char a[100])
{
char ch;
int n,i=0;
printf("input char:\n");
ch=getchar();
while(ch!='\n')
{
a[i++]=ch;
ch=getchar();
}
n=i;
printf("%d\n",n);
}
fun4(char a[100])
{
char ch;
int n,i=0;
printf("input char:\n");
ch=getchar();
while(ch!='\n')
{
a[i++]=ch;
ch=getchar();
}
n=i;
for(i=n-1;i>=0;i--)
printf("%c",a[i]);
}
main()
{
char a[100],b[100],c[100];
fun1(a);
fun2(a);
fun3(b);
fun4(c);
}
E. c語言字元串函數有哪些
復制相關函數:memcpy、抄memmove、strcpy、strncpy
字元串連接函數:strcat、strncat
字元串比較函數:memcmp、strcmp、strcoll、strncmp、strxfrm、
查找函數:memchr、strchr、strcspn、strpbrk、strrchr、strspn、strstr、strtok
其他相關函數:memset、strerror、strlen
F. C語言字元串函數實現
越界訪問了吧。
G. c語言字元串函數
c語言里, 只要不是0就表示 true
*s1 的意思就是 只要指針s1處保存的字元不是 '\0' (即是true) 就繼內續處理,
如果是 '\0' (即是false), 就終止處理.
這是因容為C語言的字元串, '\0'是字元串結束的標志.
H. C語言 字元串函數
首先要明白,sizeof不是函數,而是操作符;strlen是函數。
操作符sizeof用來判斷對象、類型所佔用的內存空間的位元組數,strlen是計算一個字元串以位元組計的長度。如:sizeof(int)、sizeof(double)、sizeof(char)等是合法的,可以計算出int、double、char這些類型所佔用的位元組數分別是4、8、1,而用strlen則是非法的。再如:若有char
a[20]="123";,那麼,strlen(a)的結果是3,而sizeof(a)的結果是20;前者是字元串「123」的長度,後者是為數組a分配的內存空間。還有:當計算一個指向字元串的指針時,sizeof得到的是指針本身的長度即固定為4(32位機),而strlen得到的是指針指向的字元串的長度。如:char
a[20]="1234567",*p=a;,則,sizeof(p)=4,而strlen(p)=7。似乎復雜了點。記住一個原則就好判斷:操作符sizeof用來計算系統為對象本身分配的空間(以位元組計),函數strlen用來計算字元串的長度(以位元組計)。