【问题描述】在字符串s中,每两个字母之间加一个*,其余字符保持不变并输出字符串。

【问题描述】在字符串s中,每两个字母之间加一个*,其余字符保持不变并输出字符串。

【输入形式】从标准输入中输入一个字符串

【输出形式】将生成的字符串序列输出到标准输出中

【样例输入】I had 123_book.

【样例输出】I had 123_boo*k.

【样例说明】数组长度需要定义长一点,能容纳添加 *后的字符串。建议长度在200-400之间。
【评分标准】

一个实现,供参考:


#include <stdio.h>
#include <ctype.h>
#include <string.h>
int main(void){
    
    char s[400];
    char t[400]; //临时字符数组 
    gets(s);
    
    int i;
    while(s[i]!='\0'){
        
        if((i<strlen(s)-1)&&isalpha(s[i])&&isalpha(s[i+1])){ //如果数组当前字符和下一个字符是字母并且下一个字符没有到空字符 
            strcpy(t,&s[i+1]);  //从下一个字符位置复制到临时字符数组里 
            s[i+1]='*';  //下一个字符位置插入一个星号 
            strcpy(&s[i+2],t);  //在星号后面复制原来后面的字符串 
        }
        
        i++; //指向下一个字符 
    }
    
    puts(s); //打印结果 
    
    return 0;
} 

img