`

C-00001-字符处理

 
阅读更多
#include<stdio.h> 
#include<stdlib.h> 
#include<string.h> 
#define MAX_COLS 20 
#define MAX_INPUT 1000 

int read_column_numbers(int columns[],int max); 
void rearrange(char *output,char const *input,int n_columns,int const columns[]); 

int main(void) 
{ 
    int n_columns; 
    int columns[MAX_COLS]; 
    char input[MAX_INPUT]; 
    char output[MAX_INPUT]; 

n_columns = read_column_numbers(columns,MAX_COLS); 

while(gets(input) != NULL) 
{ 
    printf("Original input:%s\n",input); 
    rearrange(output,input,n_columns,columns); 
    printf("Rearranged line:%s\n",output); 
} 
    return EXIT_SUCCESS; 
} 
    int read_column_numbers(int columns[],int max) 
{ 
    int num = 0; 
    int ch; 
    while(num<max && scanf("%d",&columns[num]) ==1 && columns[num] >= 0) 
    num += 1; 
    if(num % 2 != 0) 
    { 
        puts("Last column number is not paired."); 
        exit(EXIT_FAILURE); 
    } 
    while((ch = getchar())!=EOF && ch != '\n') 
    ; 
} 
void rearrange(char *output,char const *input,int n_columns,int const columns[]) 
{ 
    int col; 
    int output_col; 
    int len; 

    len = strlen(input); 
    output_col = 0; 

    for(col = 0; col < n_columns ;col += 2) 
    { 
        int nchars = columns[col+1] - columns[col] + 1; 
        if(columns[col] >= len || output_col == MAX_INPUT -1) 
            break; 
        if(output_col + nchars > MAX_INPUT -1) 
        nchars = MAX_INPUT - output_col -1; 
        strncpy(output + output_col,input + columns[col],nchars); 
         output_col += nchars; 
    } 
     output[output_col] = '\0'; 
}

  

分享到:
评论

相关推荐

    C语言-字符串函数大全和详解.txt

    本文将详细介绍部分重要的C语言字符串函数,包括`memset`、`memmove`、`memcpy`、`memchr`、`memccpy`、`memcmp`、`memicmp`、`strlen`、`strrev`、`_strupr`、`_strlwr`、`strchr`、`strrchr`、`strstr`、`strdup`...

    C语言--程序设计导论 C语言--程序设计导论

    - 字符数组:用于存储字符串,C语言中的字符串是以'\0'结束的字符数组。 - 字符串处理函数:如strlen()、strcpy()、strcat()等,提供对字符串的操作。 6. **结构体与联合** - 结构体:可以将不同类型的数据组合...

    C语言课程设计报告-字符串处理.pdf

    从提供的文件信息中,我们可以提取到有关C语言字符串处理的相关知识点。下面对这些知识点进行详细说明: 1. 字符串的连接(lianjie): - 在C语言中,字符串以'\0'(空字符)结尾。字符串的连接通常涉及到遍历两个...

    C语言-字符

    在C语言标准库中,也提供了一整套处理字符和字符串的函数,如 gets()、puts()、printf()、scanf() 等函数都是用于处理字符串和字符数据。 本章节还将介绍一些特殊字符的使用,比如转义字符,它是以反斜杠(\)开头的...

    C语言-字符串函数大全和详解

    C语言-字符串函数大全和详解,基本上包含了所有的C语言的字符串处理函数,而且讲解很详细

    C语言程序设计-从字符串中删除指定的字符;同一字母的大、小写 按不同字符处理;

    C语言程序设计-从字符... 按不同字符处理; 例如:若程序执行时输入字符串为:turbocandborlandc++ 从键盘上输入字符:n,则输出后变为:turbocadbo rladc++,如果输入的字符在字符串中不存在,则字 符串照原样输出;

    单片机C语言实例--305-字符串函数string.h应用举例.zip

    本实例"305-字符串函数string.h应用举例.zip"着重讲解了如何使用C语言中的`string.h`库来处理字符串操作。`string.h`库提供了一系列方便的函数,用于在单片机环境中进行字符串的创建、比较、复制、查找和修改等任务...

    C语言学习-字符串处理函数

    C语言学习-字符串处理函数 strcat(char str1,char str2) strcpy(char str1,char str2) strncpy(char str1,char str2,int n) strcmp(char str1,char str2)//比较两个字符串大小str1&gt;str2返回值&gt;0,str1=str2...

    单片机C语言实例--302-字符函数ctype.h应用举例.zip

    本实例"302-字符函数ctype.h应用举例"旨在深入讲解如何在单片机程序中利用C语言的`ctype.h`库进行字符处理。`ctype.h`库提供了若干个函数,用于检查字符的各种属性,例如它们是否为字母、数字、空格等。这在处理输入...

    c语言基础-c语言编程基础之字符串操作-查找常用字符串.zip

    C语言本身并不直接支持字符串类型,而是通过字符数组来处理字符串。本教程将深入探讨C语言中的字符串处理,包括基本概念、常用函数以及查找常用字符串的方法。 1. **字符串基础知识**: - 在C语言中,字符串是由零...

    C语言--程序设计导论

    第二章通常涉及C语言的语法基础,如变量、数据类型(整型、浮点型、字符型等)、常量、运算符和表达式。这一章还会讲解声明和初始化变量的区别,以及不同类型之间的转换。 第三章会深入讲解流程控制语句,如条件...

    C语言程序设计-字符串与字符数组.pptx

    在C语言中,字符串是字符型数据的一种特殊形式,它是由0或多个字符组成的序列,以空字符'\0'作为结束标志。字符串常量通常用双引号括...字符数组的初始化、读取和输出等基本操作是编写涉及字符串处理的C程序的基础。

    嵌入式C语言培训-编程进阶-2字符串

    在嵌入式系统开发中,C语言是一种广泛使用的编程语言,尤其...通过学习“嵌入式C语言培训-编程进阶-2字符串”这部分内容,开发者可以深入理解C语言字符串的特性和操作方法,为编写高效、安全的嵌入式代码打下坚实基础。

    C语言程序设计-程序举例统计字符.pptx

    C语言程序设计-程序举例统计字符 本节课程将介绍C语言程序设计中的一个经典例程,即统计字符。通过分析任务需求和示例代码,掌握条件循环的应用和字符统计的实现方法。 任务需求 从键盘读入一段文本,统计其中的...

    C++ 汉字UTF-8字符串处理类库

    很多人喜欢用CString 或std:string,但是他们的缺点是不能完成汉字各种类型之间的转换,提供三种类库ascString,ucsString,utfString以及工具utfCount,utf8_ucs2_t,tcf8_ucs4_t类库,用于各种字符串之间的直接转换`...

    C语言字符串练习(习题+答案).zip

    本资源"《C语言字符串练习(习题+答案).zip》"正是针对这一需求而准备的,它包含了C语言字符串操作的专项练习题和对应的答案,帮助学习者巩固和提升在字符串处理方面的技能。 字符串在C语言中扮演着重要角色,它们...

    C编程中常见的几种删除重复字符或者数字的方法

    对于字符串的处理是C语言编程中的一个非常重要的方面,其中删除重复字符或者数字是非常常见的操作。 删除重复字符的方法 在C语言中,删除重复字符可以使用多种方法。下面我们通过三个例子来展示不同的删除重复字符...

    C语言中字符串的处理方式

    ### C语言中字符串的处理方式 #### 引言 C语言是一种广泛使用的程序设计语言,尤其是在系统编程、嵌入式开发等领域中具有不可替代的地位。其中,字符串处理是C语言编程的重要组成部分。本文将深入探讨C语言中字符...

    C语言中将数字转换为字符串的方法

    C语言中将数字转换为字符串的功能,虽然没有直接的内建函数,但可以通过标准库函数如itoa(), sprintf()以及针对浮点数的fcvt()或gcvt()来实现。下面详细介绍这些方法及其相关知识点。 1. itoa()函数 itoa()是一个非...

Global site tag (gtag.js) - Google Analytics