A. c語言計算字元串長度的幾種方法
C語言計算字元串長度,可以手動計算也可以使用庫函數或者sizeof()操作符。
方法:
自定義函數求長度
使用strlen()函數
使用sizeof()操作符
自定義函數:
sizeof(str)/sizeof(str[0]); //假設str為待求的字元串數組名
注意:
strlen()函數求出的字元串長度為有效長度,既不包含字元串末尾結束符 『 』;
sizeof()操作符求出的長度包含字元串末尾的結束符 『 』;
當在函數內部使用sizeof()求解由函數的形參傳入的字元數組的長度時,得到的結果為指針的長度,既對應變數的位元組數,而不是字元串的長度,此處一定要小心。
B. C語言如何從字元串中讀入字元
在scanf函數中,可以使用%c來讀取一個字元,使用%s讀取一個字元串, 但是讀取字元串時不忽略空格,讀字元串時忽略開始的空格,並且讀到空格為止,因此只能讀取一個單詞,而不是整行字元串。
其實scanf函數也可完成這樣的功能,而且還更強大。這里主要介紹一個參數,%[],這個參數的意義是讀入一個字元集合。[]是個集合的標志,因此%[]特指讀入此集合所限定的那些字元,比如%[A-Z]是輸入大寫字母,一旦遇到不在此集合的字元便停止。如果集合的第一個字元是"^",這說明讀取不在"^"後面集合的字元,既遇到"^"後面集合的字元便停止。注意此時讀入的字元串是可以含有空格的,而且會把開頭的空格也讀進來。
C. c語言中怎麼從字元串中取字元
char s[]="ssssabedbewb";
int len;
char *p;
s[2]; //第一種方法
printf("輸入輸入字元串的長度:");
scanf("%d",&len);
printf("輸入字元串:");
p=malloc(len);
scanf("%s",p);
printf("%c",p[3]); //第二種方法
顯然第二種方法更靈活,不過就是有點煩
D. c語言查找字元串
字元串在存儲上類似字元數組,所以它每一位的單個元素都是可以提取的,如s=「abcdefghij」,則s[1]=「b」,s[9]="j",而字元串的零位正是它的長度,c語言查找字元串方法為:
1、首先,定義一個字元數組變數,可以這么寫。
注意事項:
盡管形式字元串可以有任意(但有限)的長度,實際語言的字元串的長度經常被限制到一個人工極大值。有兩種類型的字元串數據類型: 「定長字元串」,它有固定的極大長度並且不管是否達到了這個極大值都使用同樣數量的內存。
E. C語言中如何查找字元串
用strstr這個函數
包含文件:string.h
函數名: strstr
函數原型:extern char *strstr(char *str1, char *str2);
功能:找出str2字元串在str1字元串中第一次出現的位置(不包括str2的串結束符)。
返回值:返回該位置的指針,如找不到,返回空指針。
源代碼:
#include<stdio.h>
#include<string.h>//調用string.h中的strstr函數
void main(){
char ch1[255]="abcde";
char ch2[100]="cd";
char* ch;//用於接受返回值
if((ch=strstr(ch1,ch2))==NULL){//說明沒有要找的字元串
printf("-1\n");
}else{//說明找到了那個字元串
printf("%d\n",ch-ch1+1);//cde的地址減去abcde的地址+1
}
}
F. C語言中怎樣獲得字元串中的單個字元
根據字元串存儲的變數的不同,方法不同,參考代碼:
存儲在char數組中(支持C/C++)
charstr[]="hello";
inti;
for(i=0;str[i];i++)
printf("%c ",str[i]);//以數組方式引用一個字元:str[i]
for(i=0;*(str+i);i++)
printf("%c ",*(str+i));//以指針方式引用一個字元:*(str+i)
存儲在string中(僅支持C++)
stringstr="abcde";
for(string::iteratoriter=s.begin();iter!=s.end();iter++)//使用迭代器
{
cout<<*iter<<endl;
}
cout<<endl;
for(inti=0;i<s.length();i++)
{
cout<<s[i]<<endl;//使用數組方式調用,得到單個元素
}
G. c語言字元串提取與合成問題
按要求,將原字元串拆分成兩個字元串分別單獨保存。
思路:
一、兩個指針分別指向數組第一項和第二項,對應偶數項和奇數項,之後指針同時循環+2取值保存在對應數組。
二、拼接字元串直接使用字元串函數strcat。(不想使用庫函數,也可循環賦值)。
#include <stdio.h>
#include <string.h>
#define M 20 //數組最大長度
int splitStr(char str[],char oStr[],char eStr[]);//拆分str到oStr和eStr
int main()
{
char str[M+1],oStr[M+1],eStr[M+1];//str為原字元串,oStr為奇數字元串,eStr為偶數字元串
printf("請輸入一個字元串(最大%d個字元):",M);
scanf("%s",str);
splitStr(str,oStr,eStr);
printf("其中奇數項組成的字元串為:%s ",oStr);
printf("其中偶數項組成的字元串為:%s ",eStr);
strcat(eStr,oStr);//將偶數組和奇數組組合後放在偶數組中
printf("將偶數組和奇數組組合後新數組為%s ",eStr);
return 0;
}
int splitStr(char str[],char oStr[],char eStr[])
{
int i=0,j=0;
char *op=str+1,*ep=str;//op指向奇數項,ep指向偶數項,循環+2取值
while(1)
{
if(*ep==0) break;
if(*ep) eStr[i++]=*ep;
if(*ep && *op) oStr[j++]=*op;
if(*op==0) break;
ep+=2,op+=2;
}
eStr[i]=0,oStr[j]=0;
return 1;
}
H. C語言,如何提取字元串
C語言提取字元串的方法有:逐個字元提取、使用strstr()查找提取、按字元的位置提取等
根據使用需求來確定提取方法,多數情況下希望在一大段字元裡面提取出想要的字元串,可以用strstr函數