c语言字符串提取与合成问题?
#include
main()
{
char
x;
char
input1='\0';
char
input2='\0';
int
number1=0;
int
number2=0;
printf("请输入字符串1:(输入?结束)");//输入?作为字符串1的结束符
while(x!='?')
{
x=getchar();
if(x=='?')
break;
input1=x;
if(input1>='0'&&input1<='9')//每检查到一个数字就要乘10,进一位
number1=number1*10+input1-'0';//比如字符'9'-'0'之后的数是数字9
}
x='\0';//将字符x重置值,因为原来是等于?的
printf("请输入字符串2:(输入?结束)");
while(x!='?')
{
x=getchar();
if(x=='?')
break;
input2=x;
if(input2>='0'&&input2<='9')
number2=number2*10+input2-'0';
}
printf("两串数之和为%d",number1+number2);
getch();
}//没有用到数组和指针,也没有调用函数,真不明作业这么多要求。。。
//希望能帮到你
#includemain(){ char str[99],strTmp[9][9],*p,*q; int i=0,j; printf("请输入需要提取的字符串:
"); scanf("%s",&str); p=str; q=strTmp[i]; while(*p!='\0') { if(*p!='|') { *q++=*p++; } else { *q='\0'; i++; q=strTmp[i]; p++; } } *q='\0'; for(j=0;j<=i;j++) { printf("%s
",&strTmp[j]); }}
按要求,将原字符串拆分成两个字符串分别单独保存。
思路:
一、两个指针分别指向数组第一项和第二项,对应偶数项和奇数项,之后指针同时循环+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;
}
#include <stdio.h>
void func(char *s)
{
int i;
for(i=0;s[i];i++)
if(i%2==0)
putchar(s[i]);
for(i=0;s[i];i++)
if(i%2)
putchar(s[i]);
}
int main()
{
char s[100];
gets(s);
func(s);
return 0;
}
#include <stdio.h>
int main()
{ char s[100],s1[100]={0},s2[50]={0};
int i,j,k;
gets(s);
for(i=j=0;s[i];i++)
if(i%2==0)s1[j++]=s[i];
puts(s1);
for(i=k=0;s[i];i++)
if(i%2)s2[k++]=s[i];
puts(s2);
for(i=0;s2[i];i++)
s1[j++]=s2[i];
puts(s1);
return 0;
}
C语言 将用户输入的字符串中的所有数字提取出来
include<stdio.h> include<math.h> include<stdlib.h> intmain(){ intz=0;intt,i;int*p;intm=0;ints=0;chara[10];\/\/输入一个字符串到a[6]printf("请输入一个字符串\\n");scanf("%s",a);\/\/输入字符串 for(i=0;i<10;i++)\/\/计算a[6]中的数字个数 { if(a[i]>='0'&&a[i...
c语言,从字符串中提取几个字符
首先你要知道你要读出的时间的标志。比如你把读到的字符串存到 一个char* buf 里 ,首先你可以全部打印出来看看你读到的字符串,然后找到你要的东西,比如你要的字符串是TIME, 可以利用函数 strstr 将指针定位到这个位置,然后把你要的数据保存到另一个数组里 就行了 ...
c语言中两个字符串合并成一个字符串(不用strcat函数)
void xstrcat(str1,str2){ int i,len1;for(i=0;str1[i]!='\\0';i++);len1=i;for(i=0;str2[i]!='\\0';i++)str1[i+len1]=str2[i];}
如何用c语言将一个字符串中单词间的多个空格合并成一个?
删除首尾空格并将中间空格合并成一个,代码如下,请采纳 include<stdio.h>int main(){ char s[250],*p=s,*q=s; printf("Enter a string!\\n"); gets(s); while(*p==' ') p++; while(*p) { if(*p==' ') { *q++=*p++; for(;*p==' ';p++); } ...
c语言如何从字符串中提取特定的字符串,并统计出现次数?
可以用正则表达式去匹配,或者用for循环嵌套去匹配。
请教单片机C语言字符串如何合并问题
字符串的比较需要一个个字符比较,不能用直接==判断。如果支持strcmp函数的,可以直接用这个函数 如果不支持的,可以自己写 char ls = "mnjhg00000";\/\/ 比较用的字串 char a = lk,b = ls;bool bSame = TRUE;while (*b!='\\0'){ if (*a++ != b++){ bSame = FALSE;break;} } ...
excel如何提取一个字符串中的一段字符?
excel利用常用的两个函数提取字符串中的特定字符串,一起看看吧 在表格处理中,有时会需要从字符串中提取特定的字符串,我们利用常用的两个函数:LEFT()和find(),就能轻松完成,下面我们一起操作演示一下吧。打开表格 将地址这一列中的字符串,提取出'区'之前的内容放入另一列中。left(字符串,数值...
C语言中,合并两个字符串为一个新的字符串,确保在新字符串中,两个字符...
include<stdio.h> include <string.h> int main(){ char s1[]="happy";char s2[]="NewYear";char s3[999];int i,j,c,m=0;s3[m]=s1[0];m++;for (j=1;s1[j]!='\\0';j++){ c=0;for (i=0;i<m;i++) if (s3[i]==s1[j]) {c=1;break;};if (c==0) {s3[m]...
请教单片机C语言字符串如何合并问题
在串口助手里显示的是ASCII码,所以,发送变量时,要把变量变成ASCII码发送。还有,那个变量最大值是多少,是按十进制数发送,还是按十六进制发送。超过100后,发十进制数就要发三位,而发十六进制数,就始终发两位了。假如按十六进制数两位,先把字符串发到"t1.txt=\\" “,你这里最好别发那一对...
mid函数怎样提取字符串中的字符?
操作方法如下:1、MID函数用于从指定位置开始,提取用户指定的字符数;2、在B13中输入下图公式;3、按“回车”键;4、mid函数参数2也支持使用数组,表示分别从第几位开始提取指定的字符。
淫梵中宝: #include main() { char str[99],strTmp[9][9],*p,*q; int i=0,j; printf("请输入需要提取的字符串:\n"); scanf("%s",&str); p=str; q=strTmp[i]; while(*p!='\0') { if(*p!='|') { *q++=*p++; } else { *q='\0'; i++; q=strTmp[i]; p++; } } *q='\0'; for(j=0;j { printf("%s\n",&strTmp[j]); } }
南芬区19158744939: C语言里如何将多个字符串数据合成一个数据? - ?
淫梵中宝: 主要有两种方法,一个是字符串连接操作strcat,另一个是格式化输出sprintf,主要代码如下,//程序功能实现字符串合并 #include <stdio.h> #include <string.h> int main(int argc, char *argv[]) {char name1[32]="456",name2[32]="123",name...
南芬区19158744939: C语言中怎么提取一个字符串从第3个字母开始的其余的字符并保存到另一个字符串中 - ?
淫梵中宝: 首先你这种定义字符串的方式是错误的 应该这样定义 char *x="abcdefg",这样定义就是定义了一个字符串变量, 而你的定义char x 只是定义x为字符变量,在赋值的时候只能赋给x单个字符,如x='a', 要搞清楚 字符 和 字符串 的概念 至于你说的提取字符,可如下方法 for(i=0; i{y[i]=x[i+3]; } 这样就可以了,就是简单的循环语句赋值,把x[]数组第三个字符'd'(第0个字符时'a'),付给数组y[0].
南芬区19158744939: C语言,关于字符串提取的问题?
淫梵中宝: 有几个错误哦 1:开辟内存的时候要有一个类型转换 你要开辟的是char *类型的,而malloc的返回值是void * 所以是char* pDest = (char *)malloc(sizeof(char)*iLength); 2:内存用完要释放,并赋空值,养成良好的习惯 3:如果不等于就拷到pDest里...
南芬区19158744939: 用c语言提取字符串中的数字 - ?
淫梵中宝: 这个就是不用指针的.. 直接利用字符数组的下标来遍历.稍微做了些修改. 你看看#include <stdio.h> void main() { char str[50]; int i=0; //i是数组下标. gets(str); //输入字符串.while(str[i]) //当数组元素不是字符串结束符时.执行while { if(str[i]>='0'&&str[i]<...
南芬区19158744939: C语言中怎么提取特定的字符串呀,有这样的函数吗 - ?
淫梵中宝: 有几个函数 你可以根据需求使用 strstr 可以在字符串中查找另一个字符串 用来提取也可以 strchr 可以找字符 sscanf 类似于scanf 可以格式化提取.
南芬区19158744939: c语言一串字符串中提取数字并相加的问题 - ?
淫梵中宝: #include<stdio.h> main() {char x;char input1='\0';char input2='\0';int number1=0;int number2=0;printf("请输入字符串1:(输入?结束)");//输入?作为字符串1的结束符while(x!='?'){x=getchar();if(x=='?')break;input1=x;if(input1>...
南芬区19158744939: C语言怎么合并两个字符串? - ?
淫梵中宝: 先加头文件#include<string.h> char a[10]="123";char b[10]="abc";strcat(a,b); //连接两个字符串,连接后的字符串存放在a中,数组a中有足够空间printf("%s",a); //输出连接后的字符串或: #include<string.h> char a[10]="123"; char b[10]="abc"; char c[20]; strcpy(c,a); //把串a复制到有足够空间的c中 strcat(c,b); //把b连接到c的串尾
南芬区19158744939: C语言编写一个程序从特定的文件中提取特定的字符串. - ?
淫梵中宝: 按你追问的要求改了一下.这段代码能把键盘输入的特定字符串后面双引号内的文字提取出来存入XYZ.txt文件中.在提取过程中滤除了源文件中的'\n'和' '.供参考…… #include "stdio.h"// #include "string.h"// #include "stdlib.h"// void main(...
南芬区19158744939: C语言提取字符问题?
淫梵中宝: 使用getch(); 依次从屏幕上得到一个字符,并和“#”比对,判断是否相等. 如果相等,计数器加1. 不相等继续读一个字符,直到结束. 最后便可求出“#”的个数