c语言编程!字符串操作!

如题所述


#include <stdio.h>
#include <stdlib.h>
#include <string.h>

/* 字符串逆置 */
void string_inverse(char* src, char* dst)
{
    int i, j;
    for(j = 0, i = strlen(src)-1; i >=0; j++, i--)
    {
        dst[j] = src[i];
    }
    dst[j] = '\0';
}

/* 删除偶数下标的字符 */
void string_delete(char* s, char* t)
{
    int i, j;
    for(j = 0, i = 0; i < strlen(s); i++)
    {
        if(i%2 == 0){
            t[j++] = s[i];
            //s[i] = 0x00;
        }
    }
    t[j] = '\0';
    
    for(i = 0; i < strlen(s); i++)
    {
        if(i%2 == 0){
            s[i] = 0x00;
        }
    }
}


int main(int argc, char *argv[])
{
    char src[512];
    char dst[512];
    char t[512];
    memset(src, 0, 512);
    memset(dst, 0, 512);
    memset(t, 0, 512);
    
    printf("输入字符串:");
    //scanf("%s", src);
    gets(src);
    
    printf("原始字符串:%s\n", src);
    
    /* 字符串逆置函数调用*/
    string_inverse(src, dst);
    printf("字符串逆置:%s\n", dst);
    
    /* 字符删除函数调用 */
    string_delete(src, t);
    printf("删除偶数下标的字符后,缓冲区t中的字符串:%s\n", t);
    
    return 0;
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-06-01

(1)

#include "stdio.h"
#include "string.h"
int main(void){
    char s[100],i,j,k;
    printf("Input a string...\n");
    scanf("%100s",s);
    for(j=strlen(s)-1,i=0;i<j;i++,j--)
        k=s[j],s[j]=s[i],s[i]=k;
    puts(s);
    return 0;
}

(2)

#include "stdio.h"
int main(void){
    char s[100],i,j,t[50];
    printf("Input a string...\n");
    scanf("%100s",s);
    for(j=0,i=1;s[i];i++)
        if(i&1) t[j++]=s[i];
    t[j]='\0';
    puts(t);
    return 0;
}

本回答被提问者和网友采纳
相似回答