c语言编程:输入一行字符,输出该字符串中间的字符

要求考虑各种特殊情况下的处理,求大佬指点怎么做

特殊情况我考虑到三种,第一是字符串为单个字符,第二是字符串长度为偶数,第三是先输入了enter。
先用strlen求长度,再进行if或其他判断是否要进行余下操作。具体实现不难就不再赘述,需要请追问。追问

先输入了enter的情况的代码要怎么写呢?

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-03-10

直接运行就好了

#include <stdio.h>
#include <string.h> 
             
int main() {
    char str[1000];           
    printf("input string:\n");
    scanf("%s", str);         
             
    int len = strlen(str);    
    if (len == 0) {           
        printf("input string:\n");
    } else if (len == 1) {    
        printf("%c\n", str[0]); 
    } else {
        int mid = len / 2;    
        if (len % 2 == 0) {   // 偶数的情况
            printf("%c, %c\n", str[mid-1], str[mid]); 
        } else {              
            printf("%c\n", str[mid-1]);
        }   
    }       
             
    return 0; 
}

追问

我运行了一下发现它只会输出第一个字符的第一个字母

追答

你输入了几个字符

第2个回答  2019-03-10
用strlen求长度,然后用指针偏移啊追问

指针偏移是什么?

第3个回答  2019-03-10
说详细一点,虽然不会,但,也许可以给你提供思路。追问

原题目就是这样的,我发不了图。。是c语言老师教字符数组的输入输出连接之类的课堂作业

原题目就是这样的,我发不了图。。是c语言老师教字符数组的输入输出连接之类的课堂作业