您的位置:

c语言字符串数组分离,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");

}