要求写一个字符串输入函数,在输入十组字符串,或者接受到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;
}