c语言重写字符串输入函数问题

要求写一个字符串输入函数,在输入十组字符串,或者接受到EOF是停止,并编写一个输出函数,输出输入的字符串

#include <stdio.h>
#include <string.h>
int input(char *s[])
{
char ch[100];
int i;
for (i = 0; i < n; i++)
{
if (scanf("%s", &ch) == EOF) break;
strcpy(s[i], ch);
}
return n;
}
void output(char *s[], int n)
{
for (int i = 0; i < n; i++)
{
printf("%d\n", s[i]);
}
}
int main()
{
char s[10][100];
int n = input(s);
output(s, n);
return 0;
}

可以定义二维字符数组,用于存储输入的字符串,然后在函数中获取和打印字符串即可。

代码如下:



#include <stdio.h>

// strs为存储输入的字符串的二维字符数组
// n为要输入的字符串个数 
int readStr(char strs[][200], int n){
    
    int i=0;
    
    // 从输入读取10个字符串存入二维字符数组
    // 如果输入EOF则停止获取输入 
    while(i<n&&(scanf("%s",strs[i])!=EOF)){
        i++;
    }
    
    // 返回读取的字符串个数 
    return i;
    
}

void showStr(char strs[][200],int n){
    
    int i=0;
    // 打印二维字符数组里的字符串 
    while(i<n){
        printf("%s\n",strs[i]);
        i++;
    }
    
}



int main(void){
    
    char strs[10][200];  //存储最多10个字符串的二维字符数 
    int n=10;  // 要获取的字符串的个数 
    
    // 测试函数 
    int num=readStr(strs,n);
    showStr(strs,num);
    
    return 0;
    
} 

img