本文目录一览:
- 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");
}