user-0 提问: C语言新手上路，大佬帮帮忙呗

回复:
user: user-1
content: 希望对你有帮助：https://blog.csdn.net/it_xiangqiang/category_10581430.html 希望对你有帮助：https://blog.csdn.net/it_xiangqiang/category_10768339.html

user: user-0
content: 引用 10 楼 自信男孩的回复:#include<stdio.h> #include <ctype.h>  enum type {     DIGIT,     ALPHA,     OTHER };  char *get_substr(char *str, char *substr, int op);  int main() {     char str[128], substr[128];      scanf("%s", str);      printf("%s\n", get_substr(str, substr, DIGIT));     printf("%s\n", get_substr(str, substr, ALPHA));     printf("%s\n", get_substr(str, substr, OTHER));      return 0; }  char *get_substr(char *str, char *substr, int op) {     char *tmp = substr;     switch (op) {         case DIGIT:             while (*str) {                 if (isdigit(*str))                     *tmp++ = *str++;                 else                     str++;             }             break;          case ALPHA:             while (*str) {                 if (isalpha(*str))                     *tmp++ = *str++;                 else                     str++;             }             break;          case OTHER:             while (*str) {                 if (isalpha(*str) || isdigit(*str))                     str++;                 else                     *tmp++ = *str++;             }             break;     }     *tmp = 0;      return substr; } 供参考～ 这不是vc2010吧 我加了头文件windows.h后 输了字符串  后点回车键就反回原页面了

user: user-0
content: 引用 13 楼 @矛盾综合体的回复:[quote=引用 8 楼 qq_46084141 的回复:] [quote=引用 3 楼 @矛盾综合体的回复:]代码仅供参考，如有疑问请私信  #include<stdio.h> int main() { 	char s[256],a[100],b[100],c[100]; 	int i,j,k,l,n; 	scanf("%s",s); 	i=j=k=l=0; 	while(s[i]!='\0') 	{ 		if((s[i]>='a'&&s[i]<='z')||(s[i]>='A'&&s[i]<='Z')) 		{ 			a[j++]=s[i]; 		} 		else if(s[i]>='0'&&s[i]<='9') 		{ 			b[k++]=s[i]; 		} 		else 		{ 			c[l++]=s[i]; 		} 		i++; 	} 	a[j]=b[k]=c[l]='\0'; 	printf("%s\n%s\n%s\n",a,b,c); 	return 0; }   我的运行不了呢 数入字符串后 点回车键    就反回原页面了[/quote] 可能是你的输入或者其他地方有问题 结果： 运行环境：gcc 编辑环境：sources insight [/quote] 是VC2010吗 我用的是VC2010呢 好像你的不是诶

user: user-0
content: 引用 12 楼 @矛盾综合体的回复:[quote=引用 11 楼 自信男孩 的回复:] [quote=引用 7 楼 @矛盾综合体 的回复:] [quote=引用 6 楼 自信男孩 的回复:] [quote=引用 4 楼 @矛盾综合体 的回复:] 希望可以自己编写，如果解决了你的问题，请采纳，如果还有疑问请私信，谢谢 你的解答似乎不符合楼主的要求，要求是自定义函数，你的自定义函数在哪？[/quote] 请看清楚我的回复，谢谢！ [/quote] 参考的是不符合要求的吗？[/quote] 为什么帖子强调要自定义函数，用指针，说明他们应该刚刚学，所以刚开始我只是告诉思路，不会，我再说的实现代码，只需要提取就可以了 如果直接将实现代码告诉他，论坛就不是论坛，应该叫作业帮了。（而且论坛越来越多直接发题目，发课程设计之类的，越来越多cv工程师，个人牢骚） 也许每个人有每个人的角度，如果有说的不合理的地方请谅解，谢谢！[/quote] 好的，今后一定好好学习

user: user-2
content: 引用 14 楼 自信男孩 的回复:[quote=引用 12 楼 @矛盾综合体 的回复:] [quote=引用 11 楼 自信男孩 的回复:] [quote=引用 7 楼 @矛盾综合体 的回复:] [quote=引用 6 楼 自信男孩 的回复:] [quote=引用 4 楼 @矛盾综合体 的回复:] 希望可以自己编写，如果解决了你的问题，请采纳，如果还有疑问请私信，谢谢 你的解答似乎不符合楼主的要求，要求是自定义函数，你的自定义函数在哪？[/quote] 请看清楚我的回复，谢谢！ [/quote] 参考的是不符合要求的吗？[/quote]  为什么帖子强调要自定义函数，用指针，说明他们应该刚刚学，所以刚开始我只是告诉思路，不会，我再说的实现代码，只需要提取就可以了 如果直接将实现代码告诉他，论坛就不是论坛，应该叫作业帮了。（而且论坛越来越多直接发题目，发课程设计之类的，越来越多cv工程师，个人牢骚） 也许每个人有每个人的角度，如果有说的不合理的地方请谅解，谢谢！[/quote]  学习有多种方式，抄作业也能超出水平来，也是可以的。  我刚开始学编程时，也没少抄写程序。因为不会写，无从下手，就抄课本上的例子，边抄边想，抄完编译运行，运行没问题再改，在编译运行。反复的学习别人的思路和写法，最后成为自己的思路的，自己的写法～[/quote] Mabey ，无所谓了，到此终止，我要跑路了。

user: user-3
content: 引用 12 楼 @矛盾综合体 的回复:[quote=引用 11 楼 自信男孩 的回复:] [quote=引用 7 楼 @矛盾综合体 的回复:] [quote=引用 6 楼 自信男孩 的回复:] [quote=引用 4 楼 @矛盾综合体 的回复:] 希望可以自己编写，如果解决了你的问题，请采纳，如果还有疑问请私信，谢谢 你的解答似乎不符合楼主的要求，要求是自定义函数，你的自定义函数在哪？[/quote] 请看清楚我的回复，谢谢！ [/quote] 参考的是不符合要求的吗？[/quote]  为什么帖子强调要自定义函数，用指针，说明他们应该刚刚学，所以刚开始我只是告诉思路，不会，我再说的实现代码，只需要提取就可以了 如果直接将实现代码告诉他，论坛就不是论坛，应该叫作业帮了。（而且论坛越来越多直接发题目，发课程设计之类的，越来越多cv工程师，个人牢骚） 也许每个人有每个人的角度，如果有说的不合理的地方请谅解，谢谢！[/quote]  学习有多种方式，抄作业也能超出水平来，也是可以的。  我刚开始学编程时，也没少抄写程序。因为不会写，无从下手，就抄课本上的例子，边抄边想，抄完编译运行，运行没问题再改，在编译运行。反复的学习别人的思路和写法，最后成为自己的思路的，自己的写法～

user: user-2
content: 引用 8 楼 qq_46084141 的回复:[quote=引用 3 楼 @矛盾综合体的回复:]代码仅供参考，如有疑问请私信  #include<stdio.h> int main() { 	char s[256],a[100],b[100],c[100]; 	int i,j,k,l,n; 	scanf("%s",s); 	i=j=k=l=0; 	while(s[i]!='\0') 	{ 		if((s[i]>='a'&&s[i]<='z')||(s[i]>='A'&&s[i]<='Z')) 		{ 			a[j++]=s[i]; 		} 		else if(s[i]>='0'&&s[i]<='9') 		{ 			b[k++]=s[i]; 		} 		else 		{ 			c[l++]=s[i]; 		} 		i++; 	} 	a[j]=b[k]=c[l]='\0'; 	printf("%s\n%s\n%s\n",a,b,c); 	return 0; }   我的运行不了呢 数入字符串后 点回车键    就反回原页面了[/quote] 可能是你的输入或者其他地方有问题 结果： 运行环境：gcc 编辑环境：sources insight

user: user-2
content: 引用 11 楼 自信男孩 的回复:[quote=引用 7 楼 @矛盾综合体 的回复:] [quote=引用 6 楼 自信男孩 的回复:] [quote=引用 4 楼 @矛盾综合体 的回复:] 希望可以自己编写，如果解决了你的问题，请采纳，如果还有疑问请私信，谢谢 你的解答似乎不符合楼主的要求，要求是自定义函数，你的自定义函数在哪？[/quote] 请看清楚我的回复，谢谢！ [/quote] 参考的是不符合要求的吗？[/quote] 为什么帖子强调要自定义函数，用指针，说明他们应该刚刚学，所以刚开始我只是告诉思路，不会，我再说的实现代码，只需要提取就可以了 如果直接将实现代码告诉他，论坛就不是论坛，应该叫作业帮了。（而且论坛越来越多直接发题目，发课程设计之类的，越来越多cv工程师，个人牢骚） 也许每个人有每个人的角度，如果有说的不合理的地方请谅解，谢谢！

user: user-3
content: 引用 7 楼 @矛盾综合体 的回复:[quote=引用 6 楼 自信男孩 的回复:] [quote=引用 4 楼 @矛盾综合体 的回复:] 希望可以自己编写，如果解决了你的问题，请采纳，如果还有疑问请私信，谢谢 你的解答似乎不符合楼主的要求，要求是自定义函数，你的自定义函数在哪？[/quote] 请看清楚我的回复，谢谢！ [/quote] 参考的是不符合要求的吗？

user: user-3
content: #include<stdio.h> #include <ctype.h>  enum type {     DIGIT,     ALPHA,     OTHER };  char *get_substr(char *str, char *substr, int op);  int main() {     char str[128], substr[128];      scanf("%s", str);      printf("%s\n", get_substr(str, substr, DIGIT));     printf("%s\n", get_substr(str, substr, ALPHA));     printf("%s\n", get_substr(str, substr, OTHER));      return 0; }  char *get_substr(char *str, char *substr, int op) {     char *tmp = substr;     switch (op) {         case DIGIT:             while (*str) {                 if (isdigit(*str))                     *tmp++ = *str++;                 else                     str++;             }             break;          case ALPHA:             while (*str) {                 if (isalpha(*str))                     *tmp++ = *str++;                 else                     str++;             }             break;          case OTHER:             while (*str) {                 if (isalpha(*str) || isdigit(*str))                     str++;                 else                     *tmp++ = *str++;             }             break;     }     *tmp = 0;      return substr; } 供参考～

user: user-0
content: 引用 6 楼 自信男孩的回复:[quote=引用 4 楼 @矛盾综合体 的回复:] 希望可以自己编写，如果解决了你的问题，请采纳，如果还有疑问请私信，谢谢 你的解答似乎不符合楼主的要求，要求是自定义函数，你的自定义函数在哪？[/quote] 请问，您能帮我写一下吗，主函数和自定义

user: user-0
content: 引用 3 楼 @矛盾综合体的回复:代码仅供参考，如有疑问请私信  #include<stdio.h> int main() { 	char s[256],a[100],b[100],c[100]; 	int i,j,k,l,n; 	scanf("%s",s); 	i=j=k=l=0; 	while(s[i]!='\0') 	{ 		if((s[i]>='a'&&s[i]<='z')||(s[i]>='A'&&s[i]<='Z')) 		{ 			a[j++]=s[i]; 		} 		else if(s[i]>='0'&&s[i]<='9') 		{ 			b[k++]=s[i]; 		} 		else 		{ 			c[l++]=s[i]; 		} 		i++; 	} 	a[j]=b[k]=c[l]='\0'; 	printf("%s\n%s\n%s\n",a,b,c); 	return 0; }   我的运行不了呢 数入字符串后 点回车键    就反回原页面了

user: user-2
content: 引用 6 楼 自信男孩 的回复:[quote=引用 4 楼 @矛盾综合体 的回复:] 希望可以自己编写，如果解决了你的问题，请采纳，如果还有疑问请私信，谢谢 你的解答似乎不符合楼主的要求，要求是自定义函数，你的自定义函数在哪？[/quote] 请看清楚我的回复，谢谢！

user: user-3
content: 引用 4 楼 @矛盾综合体 的回复:希望可以自己编写，如果解决了你的问题，请采纳，如果还有疑问请私信，谢谢 你的解答似乎不符合楼主的要求，要求是自定义函数，你的自定义函数在哪？

user: user-0
content: 引用 4 楼 @矛盾综合体的回复:希望可以自己编写，如果解决了你的问题，请采纳，如果还有疑问请私信，谢谢 好，我一会回去调试试一下

user: user-2
content: 希望可以自己编写，如果解决了你的问题，请采纳，如果还有疑问请私信，谢谢

user: user-2
content: 代码仅供参考，如有疑问请私信  #include<stdio.h> int main() { 	char s[256],a[100],b[100],c[100]; 	int i,j,k,l,n; 	scanf("%s",s); 	i=j=k=l=0; 	while(s[i]!='\0') 	{ 		if((s[i]>='a'&&s[i]<='z')||(s[i]>='A'&&s[i]<='Z')) 		{ 			a[j++]=s[i]; 		} 		else if(s[i]>='0'&&s[i]<='9') 		{ 			b[k++]=s[i]; 		} 		else 		{ 			c[l++]=s[i]; 		} 		i++; 	} 	a[j]=b[k]=c[l]='\0'; 	printf("%s\n%s\n%s\n",a,b,c); 	return 0; }

user: user-0
content: 引用 1 楼 @矛盾综合体的回复:思路：判断输入的字符的ascii，如果是a-z或者A-Z弄到一个数组，0-9弄到另一个数组，其他弄到第三个数组，然后打印 我现在学C语言，学到数组就卡了壳，，写不了了    明天要交程序，大佬能否帮忙写一下呢

user: user-2
content: 思路：判断输入的字符的ascii，如果是a-z或者A-Z弄到一个数组，0-9弄到另一个数组，其他弄到第三个数组，然后打印