本文目錄一覽:
- 1、c語言如何從字元串數組中分離處單個字元
- 2、如何用c語言分離字元串中的字母和數字並分別輸出?
- 3、C語言有沒有把字元串拆分為數組的函數?
- 4、c語言分離字元串
- 5、C語言 寫一個把一個字元串分成若干個數組
- 6、C語言中輸入字元串,裡面有空格,怎麼根據空格把字元串分開,並存在數組裡?
c語言如何從字元串數組中分離處單個字元
c語言的話,本質上來說是沒有字元串數組這概念,字元串數組就是單個字元串起來,就是說定義的時候已經分成單個字元,不用再去分離
例如,定義一個char *str = “asdf”;那麼str[0],str[1],str[2],str[3]就會分別對應asdf
如果你是要分割char *str = “a,b,c,d”,這種類型的字元串,你可以用strtok這個函數
如何用c語言分離字元串中的字母和數字並分別輸出?
把字元串存放到數組裡面,一個一個比對(循環)後輸出
判斷數字:
for (i=0;in;i++){
if ((p[i]=’0′) (p[i]=’9′))
printf();
判斷字母:
for (i=0;in;i++){
if ((p[i]=’a’) (p[i]=’Z’))
printf();
擴展資料:
通常以串的整體作為操作對象,如:在串中查找某個子串、求取一個子串、在串的某個位置上插入一個子串以及刪除一個子串等。兩個字元串相等的充要條件是:長度相等,並且各個對應位置上的字元都相等。設p、q是兩個串,求q在p中首次出現的位置的運算叫做模式匹配。串的兩種最基本的存儲方式是順序存儲方式和鏈接存儲方式。
參考資料來源:百度百科-字元串
C語言有沒有把字元串拆分為數組的函數?
直接用簡單的C++
#include iostream
#include string
#include vector
using namespace std;
//把字元串s按照字元串c進行切分得到vector_v
vectorstring split(const string s, const string c){
vectorstring v;
int pos1=0,pos2;
while((pos2=s.find(c,pos1))!=-1){
v.push_back(s.substr(pos1, pos2-pos1));
pos1 = pos2 + c.size();
}
if(pos1 != s.length())
v.push_back(s.substr(pos1));
return v;
}
int main()
{
string input=”張三$|男$|濟南$|大專學歷$|”;
vectorstring myArray=split(input,”$|”);
for(int i=0;imyArray.size();i++){
coutmyArray[i]endl;
}
}
/*
張三
男
濟南
大專學歷
*/
c語言分離字元串
/************************************************************************/
/* 21chenxb’ work
2010-6-26
VC++6.0
C加加愛好者團
/************************************************************************/
#include stdio.h
void main()
{
char a[]=”$GPGGA,003235.000,2247.2020,N,11353.5878,E,1,04,2.2,104.8,M,-3.3,M,,0000*4B”;
char b[14][100];
int i=0;
int j=0;
int k=0;
while (a[i])
{
if (a[i]!=’,’)
{
b[j][k]=a[i];
k++;
}
else
{
b[j][k]=0;
j++;
k=0;
}
i++;
}
//輸出測試
for(int m=0;m14;m++)
{
printf(“%s\n”,b[m]);
}
}
時間有限,這個程序的比較死板。但是完全達到你問題中的目標。
C語言 寫一個把一個字元串分成若干個數組
void * Split(const char * pString ,int length)
{
char * ptr=NULL;
int rows;//一組等寬字元串可以看做二維數組的一行,定義行數
const char *pSrc=pString;//取原地址作為源指針
char *pTag;//目標指針
//分割長度小於等於0,或指針無效時,返回空指針。
if (pString length0 )
{
int len=strlen(pString);
int cols;//列數
rows=len/length;//字元串總長除以列數
if (len%length0)rows++;//如果餘數非0,則行數加一
ptr=new char[rows*(length+1)];//創建足夠的空間
pTag=ptr;//初始化目標指針
while (*pSrc!=’\0′)//源指針指向的值如果有效則循環
{
cols=strlen(pSrc);//取原指針開始的字元串長度
if (colslength)cols=length;//如果大於分割長度則修正,否則即為餘數,就是最後一行的列數
memcpy(pTag,pSrc,cols);//複製
pTag+=length;//目標指針遞增一個列寬(行寬度)
*pTag=’\0′;//填寫結束符
pTag++;//增補一個地址
pSrc+=cols;//源指針遞增一個列寬(行寬度)
}
}
return ptr;
}
//主函數
int _tmain(int argc, _TCHAR* argv[])
{
char *str=”abcdefghijklmn”;
char (*p)[4];
p=(char (*)[4])Split(str,3);
coutp[1]endl;
getchar();
return 0;
}
C語言中輸入字元串,裡面有空格,怎麼根據空格把字元串分開,並存在數組裡?
程序源碼如下:
#includestdio.h
#includestring.h
int main(void)
{
char str[1000];//定義一個字元串數組
char strnew[1000];//定義一個備用字元串數組
char m[] = ” “;//定義空格變數
printf(“請輸入一串字元:”);//文字提示輸入字元串
gets(str);//輸入字元串
char *p = strtok(str,m);//取str與m的指針
printf(“%s\n”,p); //輸出
p = strtok(NULL,m);
while(p) //遍歷輸出
{
printf(“%s\n”,p); //輸出字元串
p = strtok(NULL,m); //指向下一個
}
}
程序輸出結果:
擴展資料:
C語言:輸入一個字元串放入數組裡,刪除其中的空格
#include stdio.h
#includestring.h
#define N 100
void main()
{
int i=0,j;
char c,str[N];
printf(“輸入字元串str:\n”);
while((c=getchar())!=’\n’)
{
str[i]=c;//輸入字元串
i++;
}
str[i]=’\0′;
for(i=0;str[i]!=’\0′;i++)
{
if(str[i]==’ ‘)
{
for(j=i+1;str[j]!=’\0′;j++)
{
str[j-1]=str[j];
}
str[j]=’\0′;
}
else continue;
}
str[i-2]=’\0′;
printf(“去掉空格後的字元串為:\n”);
for(i=0;str[i]!=’\0′;i++)
printf(“%c”,str[i]);
printf(“\n”);
}
原創文章,作者:BRHH,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/143709.html