c语言字符串提取与合成问题? C语言提取字符串问题

c\u8bed\u8a00\u4e00\u4e32\u5b57\u7b26\u4e32\u4e2d\u63d0\u53d6\u6570\u5b57\u5e76\u76f8\u52a0\u7684\u95ee\u9898

#include
main()
{
char
x;
char
input1='\0';
char
input2='\0';
int
number1=0;
int
number2=0;
printf("\u8bf7\u8f93\u5165\u5b57\u7b26\u4e321\uff1a(\u8f93\u5165\uff1f\u7ed3\u675f)");//\u8f93\u5165\uff1f\u4f5c\u4e3a\u5b57\u7b26\u4e321\u7684\u7ed3\u675f\u7b26
while(x!='?')
{
x=getchar();
if(x=='?')
break;
input1=x;
if(input1>='0'&&input1<='9')//\u6bcf\u68c0\u67e5\u5230\u4e00\u4e2a\u6570\u5b57\u5c31\u8981\u4e5810\uff0c\u8fdb\u4e00\u4f4d
number1=number1*10+input1-'0';//\u6bd4\u5982\u5b57\u7b26'9'-'0'\u4e4b\u540e\u7684\u6570\u662f\u6570\u5b579
}
x='\0';//\u5c06\u5b57\u7b26x\u91cd\u7f6e\u503c\uff0c\u56e0\u4e3a\u539f\u6765\u662f\u7b49\u4e8e\uff1f\u7684
printf("\u8bf7\u8f93\u5165\u5b57\u7b26\u4e322\uff1a(\u8f93\u5165\uff1f\u7ed3\u675f)");
while(x!='?')
{
x=getchar();
if(x=='?')
break;
input2=x;
if(input2>='0'&&input2<='9')
number2=number2*10+input2-'0';
}
printf("\u4e24\u4e32\u6570\u4e4b\u548c\u4e3a%d",number1+number2);
getch();
}//\u6ca1\u6709\u7528\u5230\u6570\u7ec4\u548c\u6307\u9488\uff0c\u4e5f\u6ca1\u6709\u8c03\u7528\u51fd\u6570\uff0c\u771f\u4e0d\u660e\u4f5c\u4e1a\u8fd9\u4e48\u591a\u8981\u6c42\u3002\u3002\u3002
//\u5e0c\u671b\u80fd\u5e2e\u5230\u4f60

#includemain(){ char str[99],strTmp[9][9],*p,*q; int i=0,j; printf("\u8bf7\u8f93\u5165\u9700\u8981\u63d0\u53d6\u7684\u5b57\u7b26\u4e32\uff1a\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<=i;j++) { printf("%s\n",&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璇█瀛楃涓鎴彇鐨闂
    绛旓細闂1锛歱1=s+strlen(s)-1; 璇彞鍏跺疄鏄p1鎸囧悜瀛楃涓s鐨勬渶鍚庝竴涓瓧绗︼紝姣斿char *s = "aaa,bb,c,de";閭d箞p1杩欎釜鏃跺欏氨鎸囧悜e銆傝櫧鐒舵寚鍚戞渶鍚庝竴涓瓧绗︾殑鏂规硶涓嶅皯锛屼絾鎴戣涓鸿繖涓槸鏈鏂逛究鐨勶紝鎴戞病鏈夋兂鍑烘瘮杩欎釜鏇村ソ鐨勩傞棶棰2锛氬弽鍚戞寚灏辨槸璇存垜浠掔潃鏉ユ娴嬪瓧绗','锛屼互闂1涓殑s涓轰緥锛屽弽鍚戞寚...
  • C璇█濡備綍鍚堝苟涓や釜瀛楃涓,涓嶇敤搴撻噷鐨勫嚱鏁?
    绛旓細鍥犱负char *b = "123\"";鎵鎸囧悜鐨勭┖闂达紝鏄滃父閲忓尯鈥濓紝鍏朵腑鐨勫唴瀹规槸涓嶅厑璁告敼鍐欑殑銆傛墍浠ワ紝char *a = "DCY666\"";瑕佹敼鎴恈har a[20] = "DCY666\"";瀛楃鏁扮粍骞堕鐣欑┖闂达紝鍙互澧炲姞瀛楃涓鐨勫唴瀹广
  • C璇█棰樼洰:鎻愬彇涓涓瀛楃涓涓殑鎵鏈夋暟瀛楀瓧绗(鈥0鈥...鈥9鈥)灏嗗叾杞崲涓...
    绛旓細include<stdio.h>#include<string.h>int main(){ char s[20]; int i; printf("杈撳叆鍖呭惈鏁板瓧鐨瀛楃涓锛"); scanf("%s",s); printf("鍏朵腑鏁村瀷鏁板瓧浣嶄负锛"); for(i=0;i<strlen(s);i++) { if(s[i]>=48 && s[i]<=57) { printf("%d",(int)s[...
  • 浠瀛楃涓涓娊鍙栧嚭涓閮ㄥ垎,骞舵樉绀哄嚭鎶藉彇鐨勫瓧绗︿覆,鍋囪浠庣n涓瓧绗﹀紑濮...
    绛旓細c璇█瀛楃涓 姹傚嚭鍦ㄥ瓧绗︿覆涓渶鍚 瀛楃涓茬粨鏉熺殑鏍囧織 姹傚嚭瀛楃涓瞱e are 瀛楃涓叉槸浠涔堟剰鎬 瀛楃涓叉庝箞杈撳叆 鍏朵粬绫讳技闂2009-03-05 浠庡瓧绗︿覆str鐨勭N涓瓧绗﹀紑濮鍙栧嚭瀛楃M涓瓧绗︾敤鍑芥暟琛ㄧず涓篲... 2 2011-11-06 鐢ㄦ寚閽堟柟娉曞畬鎴愪粠n涓瓧绗︾殑瀛楃涓蹭腑鎴彇绗琺涓瓧绗﹀紑濮嬬殑闀垮害涓... 3 2013-06-18 C...
  • C璇█ 浠庢暟缁勪腑鍚瀛楃涓叉彁鍙鍑烘潵鍙﹀鍒嗗埆鍌ㄥ瓨
    绛旓細//#include "stdafx.h"//vc++6.0鍔犱笂杩欎竴琛.#include "stdio.h"#include "string.h"#include "stdlib.h"int main(void){ char arr[40] = "nckxvn asijlfw dvjkiq vsd asliw",*p[5],a[8]; int i,j,x; for(j=i=0;i<40;i++){ sscanf(arr+i,"%s%n",...
  • C璇█,濡備綍鎻愬彇瀛楃涓
    绛旓細C璇█鎻愬彇瀛楃涓茬殑鏂规硶鏈夛細閫愪釜瀛楃鎻愬彇銆佷娇鐢╯trstr()鏌ユ壘鎻愬彇銆佹寜瀛楃鐨勪綅缃彁鍙栫瓑 鏍规嵁浣跨敤闇姹傛潵纭畾鎻愬彇鏂规硶锛屽鏁版儏鍐典笅甯屾湜鍦ㄤ竴澶ф瀛楃閲岄潰鎻愬彇鍑烘兂瑕佺殑瀛楃涓诧紝鍙互鐢╯trstr鍑芥暟
  • C璇█,濡備綍鎶瀛楃涓叉彁鍙杞负鍗佸叚杩涘埗,濡傚瓧绗︿覆vF.2.3.a.b.C.d,鎻愬彇...
    绛旓細鎸夌収浣犵殑瑕佹眰缂栧啓鐨C璇█绋嬪簭濡備笅 include<stdio.h> int main(){ char* str="vF.2.3.a.b.C.d";char temp[5];char hex[20][5]={0};int i,j=0,a,k=0;for(i=0;str[i]!='\0';i++){ if('A'<=str[i]&&str[i]<='F'||'a'<=str[i]&&str[i]<='f'||'0'<=str...
  • C璇█闂 缂栧啓涓绋嬪簭灏嗕袱涓瀛楃涓杩炶捣鏉
    绛旓細include <stdio.h>#include <string.h>int main (){ char str1[10],str2[5],*p,i;//杩欓噷鐢╯tr1鎺ユ敹鎷兼帴鍚庣殑瀛楃涓锛岀‘淇漵tr1澶у皬澶熸斁锛侊紒 娉ㄦ剰瑕佺暀1浣嶄繚瀛樼粨鏉熺'\0' strcpy(str1,"abcd");strcpy(str2,"efgh"); printf("鍘熷瓧绗︿覆鍒嗗埆涓猴細%s %s\n\n",str1,str2);...
  • c璇█濡備綍灏嗕竴涓瀛楃涓涓殑鏁板瓧鎻愬彇姹傚拰..渚嬪:12GDPs5.ghgggh62sfhhh...
    绛旓細鏄繖鏍风殑缁撴灉鍚楋紵灏嗚繛缁殑鏁扮湅鎴愭槸涓缁勬暟瀛楋紝灏嗘瘡缁勬暟瀛楃浉鍔
  • 鐢c璇█鎻愬彇瀛楃涓涓殑鏁板瓧
    绛旓細鐢c璇█鎻愬彇瀛楃涓涓殑鏁板瓧鐨勬搷浣滃涓嬶細1銆侀鍏堟墦寮visual studio杞欢骞跺垱寤轰竴涓柊鐨刢璇█鏂囦欢锛屽涓嬫墍绀恒2銆佺劧鍚庡鍏C璇█鏂囦欢椤堕儴鐨勫簱鍐呭锛屽涓嬫墍绀恒3銆佺劧鍚庝娇鐢╯canf鍑芥暟鎺ユ敹鐢ㄦ埛杈撳叆鐨勫瓧绗︿覆銆4銆佺劧鍚庝娇鐢╬rintf鍑芥暟鎵撳嵃鐢ㄦ埛杈撳叆銆5銆佽繍琛岀▼搴忓悗锛屽脊鍑轰笅鍥炬墍绀虹殑鍛戒护鐣岄潰锛岃嚜鍔ㄦ帴鏀惰緭鍏ュ唴瀹癸紝鎸夊師鏍...
  • 扩展阅读:c语言字符串反转反序 ... 截取字符串的三种方法 ... 获取字符串第n个字符 ... c语言字符串拼接不用 ... c语言搜题神器app ... 将一字符串按反序输出 ... c语言将12345倒序输出 ... c语言逆序存放并输出 ... c语言截取字符串的某一段 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网