当前位置:首页 » 编程语言 » c语言分离字符串
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言分离字符串

发布时间: 2022-11-28 17:18:59

1. c语言中 如何分割字符串

c语言中没有 string class, 假定你指 char 字符串。
用 sscanf 方法可以分割。
char str2[]="aa 123,bb 456,cc 789,dd 000";
按逗号分割为4 部分:
aa 123
bb 456
cc 789
dd 000
-----------------
char str[]="aa,bb,cc,dd";
按逗号分割为4 部分:
aa
bb
cc
dd
-------------------------
#include <stdio.h>
main()
{
char str[]="aa,bb,cc,dd";
char str2[]="aa 123,bb 456,cc 789,dd 000";
char s[4][10];
int i;
sscanf(str,"%[^,],%[^,],%[^,],%[^,]",s[0],s[1],s[2],s[3]); // 第1种方法
for (i=0;i<4;i++) printf("%s\n",s[i]);
sscanf(str2,"%[^,],%[^,],%[^,],%[^,]",s[0],s[1],s[2],s[3]); // 第1种方法
for (i=0;i<4;i++) printf("%s\n",s[i]);
//-----------
for (i=0;i<strlen(str);i++) if (str[i]==',') str[i]=' '; // 第2种方法--替换成空格分隔
sscanf(str,"%s %s %s %s",s[0],s[1],s[2],s[3]);
for (i=0;i<4;i++) printf("%s\n",s[i]);
return 0;
}

2. c语言:如何把字符串分解为一个个的字符

1.
不需要专门分割,c语言里面本来就是用字符数组来保存的,如:char
a[20]="hello
world!";这个字符串,char[0]就是h,char[1]就是e。
2.
如果要分割子串,可以使用strtok函数。
char
*strtok(char
*s,
char
*delim);
分解字符串为一组字符串。s为要分解的字符串,delim为分隔符字符串。
首次调用时,s指向要分解的字符串,之后再次调用要把s设成null。
strtok在s中查找包含在delim中的字符并用null('')来替换,直到找遍整个字符串。

3. c语言如何从字符串数组中分离处单个字符

c语言的话,本质上来说是没有字符串数组这概念,字符串数组就是单个字符串起来,就是说定义的时候已经分成单个字符,不用再去分离
例如,定义一个char *str = "asdf";那么str[0],str[1],str[2],str[3]就会分别对应asdf
如果你是要分割char *str = "a,b,c,d",这种类型的字符串,你可以用strtok这个函数

4. 如何用c语言分离字符串中的字母和数字并分别输出

给出代码:
#include<iostream>

#include<cstdio>

#include<cstring>

#include<cctype>

usingnamespacestd;

intmain()

{

intnum,snum;

num=0;

snum=0;

chars[100];

charzi[100];

charfu[100];

scanf("%s",s);

for(inti=0;i<strlen(s);i++)

{

if(s[i]<='9'&&s[i]>='0')

{

zi[num]=s[i];

num++;

}

elseif(s[i]<='z'&&s[i]>='a'||s[i]<='Z'&&s[i]>='A')

{

fu[snum]=s[i];

snum++;

}

}

for(inti=0;i<=num;i++)

{

printf("%c",zi[i]);

}

cout<<endl;

for(intj=0;j<=snum;j++)

{

printf("%c",fu[j]);

}

return0;

}

5. 如何用c语言分离字符串中的字母和数字并分别输出

把字符串存放到数组里面,一个一个比对(循环)后输出

判断数字:

for (i=0;i<n;i++){

if ((p[i]>='0') && (p[i]<='9'))

printf();

判断字母:

for (i=0;i<n;i++){

if ((p[i]>='a') && (p[i]<='Z'))

printf();

(5)c语言分离字符串扩展阅读:

通常以串的整体作为操作对象,如:在串中查找某个子串、求取一个子串、在串的某个位置上插入一个子串以及删除一个子串等。两个字符串相等的充要条件是:长度相等,并且各个对应位置上的字符都相等。设p、q是两个串,求q在p中首次出现的位置的运算叫做模式匹配。串的两种最基本的存储方式是顺序存储方式和链接存储方式。

6. C语言字符串分割

char *strtok(char *str, const char *delim)
str -- 要被分解成一组小字符串的字符串。
delim -- 包含分隔符的 C 字符串。

int sscanf(const char *str, const char *format, ...)

char *strstr(const char *haystack, const char *needle)
haystack -- 要被检索的 C 字符串。
needle -- 在 haystack 字符串内要搜索的小字符串。

7. C语言字符串拆分

使用strstr函数嘛(以下代码测试通过)
功能:在一个字符串中查找特定的字符串,如果查找到会返回查找到字符串的位置,失败返回NULL
分析:搜索字符串"bizbox_userlang=",成功后取出'='后和‘=’后第1个';'之间的所有字符

#include <stdio.h>
int main(int argc, char* argv[])
{
char buf1[]="bizbox_username=admin; bizbox_userpass=; bizstore_note=; bizbox_userlang=zh; csd=33; cod=29.30; business_note=null";
char *buf2="bizbox_userlang=";
char *ptr;
char txt[100];

ptr=strstr(buf1,buf2); //成功返回的位置是"bizbox_userlang=zh; csd=33...."
if( ptr==NULL)
{
printf("没有找到该内容\n");
return -1;

8. 请问,C语言中,对带分隔符的字符串如何分割

C/C++中的Split函数是strtok()其函数原型如下:
char * strtok (char * str, const char * delimiters);

函数说明
strtok()用来将字符串分割成一个个片段。参数str指向欲分割的字符串,参数delimiters则为分割字符串,当strtok()在参数str的字符串中发现到参数delimiters的分割字符时则会将该字符改为'\0'字符。在第一次调用时,strtok()必需给予参数str字符串,往后的调用则将参数str设置成NULL。每次调用成功则返回下一个分割后的字符串指针。

返回值
返回下一个分割后的字符串指针,如果已无从分割则返回NULL。

示例-1
/* strtok example */
#include <stdio.h>
#include <string.h>

int main ()
{
char str[] ="a,b,c,d*e";
const char * split = ",";
char * p;
p = strtok (str,split);
while(p!=NULL) {
printf ("%s\n",p);
p = strtok(NULL,split);
}

getchar();
return 0;

}
本例中,实现对字符串'a,b,c,d*e"用逗号(,)来作界定符对字符串进行分割。
输出结果将如下所示:
a
b
c
d*e

因为delimiters支持多个分割符, 我们将本示例中的语句行
const char * split = ",";
改成 const char * split = ",*"; //用逗号(,)和星号(*)对字符串进行分割

这样输出结果将如下所示:
a
b
c
d
e

9. C语言如何分割字符串

可以写一个分割函数,用于分割指令,比如cat a.c最后会被分割成cat和a.c两个字符串、mv a.c b.c最后会被分割成mv和a.c和b.c三个字符串。

参考代码如下:

#include<stdio.h>
#include<string.h>
#defineMAX_LEN128
voidmain()
{
inti,length,ct=0,start=-1;
charinputBuffer[MAX_LEN],*args[MAX_LEN];
strcpy(inputBuffer,"mva.cb.c");
length=strlen(inputBuffer);
for(i=0;i<=length;i++){
switch(inputBuffer[i]){
case'':
case' ':/*argumentseparators*/
if(start!=-1){
args[ct]=&inputBuffer[start];/*setuppointer*/
ct++;
}
inputBuffer[i]='';/*addanullchar;makeaCstring*/
start=-1;
break;
case'':/*shouldbethefinalcharexamined*/
if(start!=-1){
args[ct]=&inputBuffer[start];
ct++;
}
inputBuffer[i]='';
args[ct]=NULL;/*nomoreargumentstothiscommand*/
break;
default:/*someothercharacter*/
if(start==-1)
start=i;
}
}
printf("分解之后的字符串为: ");
for(i=0;i<ct;i++)
printf("%s ",args[i]);
}

10. C语言 分离字符串中的字母、数字、符号

#include"stdio.h"
#include"string.h"
int main()
{
static int num[5],i=0;//
char str[25];
puts("enter a string :");
gets(str);
while(str[i])
{
if ('A' <= str[i] && str[i] <= 'Z')
num[0]++
else if ('a' <= str[i] && str[i] <= 'z')
num[1]++;
else if ('0' <= str[i] && str[i] <= '9')
num[2]++;
else if (str[i] == ' ')
num[3]++;
else
num[4]++;
i++;
}
printf("big: %d\n", num[0]);
printf("small: %d\n", num[1]);
printf("number: %d\n", num[2]);
printf("blank: %d\n", num[3]);
printf("other: %d\n",num[4]);
}