C语言 将一个字符串中的单词提取到另一个数组中。并显示数量

作者&投稿:睢宏 (若有异议请与网页底部的电邮联系)
C语言如何把一个字符串中的数值全提取出放在一个数组里面~

用 sscanf() ;
例如:
char str[80]="1101";
int a[4];
sscanf(str,"%1d%1d%1d%1d",&a[0],&a[1],&a[2],&a[3]);

这类问题要考虑一下安全性,数组的边界溢出。
最好使用库函数,不要用strcpy,用strncpy。
#include
strncpy(目标数组,原数组,sizeof(目标数组));

strcpy的两个参数都要是一维数组的形式,你给的两个参数一个是一维char数组,一个是char,两个类型不匹配,所以出错。

给你写了个参考

#include<stdio.h>
#include<string.h>
#define N 1000
#define M 1000
int main()
{
    char a[N], b[M][N], temp[N];
    int n,num=0,i,word=0;
    gets(a);
    n=strlen(a); // n为a[N]的长度
    for(i=0;i<n;i++)
    {
        if(a[i] == ' ' || a[i] == '')//单词分隔符
        {
            if (word != 0){
                temp[word] = '\0';
                strcpy(b[num],temp);
                num++;
                word = 0;
            }
        }
        else
        {
            temp[word++] = a[i];//
        }
    }
    if (word != 0){//最后一个单词后面可能没有分隔符
        temp[word] = '\0';
        strcpy(b[num], temp);
        num++;
        word = 0;
    }
    printf ("num:%d
", num);
    for (i = 0; i < num; ++i){
        printf ("%s
", b[i]);
    }
return 0;
}



海州区18596077939: 怎样从一个字符串里面找到特定的单词,然后用别的单词取代?用c语言实现!!! -
慈炊橘红: #include <stdio.h> #include <string.h>void replace(char* org, char* find, char* rep) {char *p1, *p2; while(p1 = strstr(org, find)) {p2 = p1 + strlen(find);memmove(p1 + strlen(rep), p2, strlen(p2) + 1);memcpy(p1, rep, strlen(rep));} }int main() {...

海州区18596077939: 在C语言中如何将一串字符串中读取出其中的单词 -
慈炊橘红: char *word = "hi,hello"; //你定义的单词 char *str = "hisakjdhaskjdahi"; //你定义的字符串 char buf[256]; //每次读出的单词 char *ptr = str; while(*str != '\0') { int i = 0; while(*ptr != '\0') { buf[i] = *ptr; buf[i+1] = '\0'; if(strstr(word,buf) != NULL) { printf("%s\n", buf); } i++; ptr++; } str++; }

海州区18596077939: C语言输入字符串,将输入字符串里的各单词逐行输出. -
慈炊橘红: 最简单的方法就是用strtok函数,可以轻松搞定! char str[128] ; //输入数据 char *word; gets(str);word=strtok(str, " " ); //单词间应该是用空格分开的 while ( word ) {printf("%s\n", word ); word=strtok(NULL, " " );}

海州区18596077939: 求C语言程序,能把字符串中的大写字母单词提出来. -
慈炊橘红: 都没理解对是大写字母单词提出来不是把大写字母提出来看我的A DOG Press any key to continue #include <stdio.h> #include <string.h>main() {int i,j,flag,wordLen,nLen;char words[20]={0},str[] ="You are A little DOG!";nLen=strlen(str);...

海州区18596077939: 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].

海州区18596077939: c语言编程 写一个函数,输入一行字符,将此字符串中最长的单词输出.用最简单的方法 -
慈炊橘红: #include "string.h" #include "ctype.h" main() { char str[50]; char str1[50][20]; char str2[20]; int i,j,t;gets(str);j=0,t=0; for(i=0;str[i];i++) /*提取字符串中的单词,但是输入时每个单词之间只允许*/ { /*有一个字符如空格,逗号只有句末才能用句号*/...

海州区18596077939: 用C语言写一个提取一个字符串中全是大写字母单词的函数?请高手指教,不胜感激. -
慈炊橘红: #include int get(char* p) { int count = 0; while(*p!='\0')//循环到字符串结束标志是停止 { p++; count++; } return count; } int main() { char *p = "asdfgasdfghjjklkjhh";//C风格的字符串在末尾默认加了一个'\0'作为字符串结束的标志 int num = get(p); printf("字符串【%s】的长度为【%d】\n",p,num); return 0; }

海州区18596077939: c语言替换字符串中某个单词,请给出代码,谢谢. -
慈炊橘红: #include#include#include int main() { char str[1000]; char *str1=NULL; char *str2=NULL; char strtemp[100]; char str3[100]; puts("请输入初始字符串:"); gets(str); puts("请输入要被替换掉的字符串:"); gets(strtemp); puts("请输入要...

海州区18596077939: 用c语言编程,编写一个函数,输入一行字符,将字符串中最长的单词输出. -
慈炊橘红: 123456789101112131415161718192021 #include <stdio.h> char*longest(char*p){ char*t,max,n; while(*p==' ') p++; for(max=n=0,t=p;*p;p++) if(*p!=' ') n++; else{ if(max<=n) max=n,t=p-n; n=0; } returnmax<=n ? p-n : t; } intmain(void){ charstr[1000],*p;...

海州区18596077939: 标准C中,怎么从字符串中获取一个字符? -
慈炊橘红: #include "stdafx.h"char * getWchar(char *str, char *substr, int index) {substr[0] = str[2*index];substr[1] = str[2*index+1];substr[2] = '\0';return substr; } void main() {char * str="标准C中,怎么从字符串中获取一个字符";char p[3];printf("%s",...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网