C语言问题 读入若干字符串,将包含指定字符的字符串输出。
答案:3 信息版本:手机版
解决时间 2019-10-06 08:06
已解决
2019-10-05 23:40
c语言新手 如何用定义函数解决
读入字符串用getchar还是scanf
最佳答案
2019-10-06 01:19
#include #include #define M 4 #define N 20 void Sort(char (*a)[N],int n) { int i,j; char ct[N]; for(i = 0;i < n - 1;i++) { for(j = 0;j < n - i - 1;j++) if(strcmp(a[j],a[j+1]) > 0) { strcpy(ct,a[j]); strcpy(a[j],a[j+1]); strcpy(a[j+1],ct); } } } int main() { int i; char str[M][N]; //输入 for(i = 0;i < M;i++) scanf("%s",str[i]); //排序 Sort(str,M); //输出 for(i = 0;i < M;i++) printf("%s\n",str[i]); return 0; }
全部回答
1楼
2019-10-06 03:02
看你的代码的意思是先把第一个冒号前面的字符串去掉,然后再分割标示符
给你个短的版本,如下
#include
#include
#include
int main(void)
{
char s[100] = "iios:12ddwdff-ad_ff=2131_85+asdf";
char *p = strchr(s, ':')+1;
printf("[%s]\n", p);
char *q = p;
while (*p) {
if (!isdigit(*p) && !isalpha(*p) && *p!='_') {
*p = 0; // 添加字符串结尾保证q的结尾正确
printf("%s\n", q); // 这个q就是你要的字符串,如果你想保存成数组的话就开个数组把q存进去
q = p+1; // 指向下一个串
}
p++;
}
printf("%s\n", q); // 这里还有最后一个别忘了。
return 0;
}
2楼
2019-10-06 01:40
#include #include #define M 4 #define N 20 void Sort(char (*a)[N],int n) { int i,j; char ct[N]; for(i = 0;i < n - 1;i++) { for(j = 0;j < n - i - 1;j++) if(strcmp(a[j],a[j+1]) > 0) { strcpy(ct,a[j]); strcpy(a[j],a[j+1]); strcpy(a[j+1],ct); } } } int main() { int i; char str[M][N]; //输入 for(i = 0;i < M;i++) scanf("%s",str[i]); //排序 Sort(str,M); //输出 for(i = 0;i < M;i++) printf("%s\n",str[i]); return 0; }
我要举报
如果感觉以上信息为低俗/不良/侵权的信息,可以点下面链接进行举报,我们会做出相应处理,感谢你的支持!
大家都在看
推荐资讯