user-0 提问: c语言编程

回复:
user: user-0
content: 引用 2 楼 拥抱Linux的回复:你的题目的意思「删除该字符串的所有首部和尾部数字字符」到底是什么？就是说字符串中间出现的数字保留，是吗？ 下面是2个程序，你自己看哪个合适吧。 （1）去除字符串中的所有数字，允许输入的字符串的最大长度默认为99个字符加一个'\0'，可以自行修改。  #include <stdio.h>  #define LENGTH 100  int main(int argc, char const *argv[]) { 	char str[LENGTH]; 	int count = 0; 	char c;  	// 「忽略」所有的数字 	while ((c = getchar()) != '\n' && count < (LENGTH - 1)) { 		if (c < 48 || c > 57) { 			str[count] = c; 			count++; 		} 	} 	str[count] = '\0'; 	printf("%s * %d\n", str, count);  	return 0; }  （2）去除字符串的最前面和最末尾的数字，中间有数字的话，保留。允许输入的字符串的最大长度默认为99个字符加一个'\0'，可以自行修改。  #include <stdio.h> #include <string.h>  #define LENGTH 100  int main(int argc, char const *argv[]) { 	char str[LENGTH]; 	int count = 0; 	char c; 	char *p = str;  	while ((c = getchar()) != '\n' && count < (LENGTH - 1)) { 		str[count] = c; 		count++; 	} 	str[count] = '\0';  	// 「清除」字符串最前面的数字，或者叫「跳过」 	for (int i = 0; i < count; i++) { 		if (str[i] < 48 || str[i] > 57) 			break; 		else { 			p++; 		} 	}  	// 「清除」字符串最后面的数字，或者叫「跳过」 	for (int i = count - 1; i >= 0; i--) { 		if (str[i] < 48 || str[i] > 57) { 			str[i + 1] = '\0'; 			break; 		} 	}  	printf("%s * %d\n", p, (int)strlen(p));  	return 0; }   希望可以帮到你，欢迎及时给分、结帖。 您能再看看我的另一个帖子的题吗 谢谢您

user: user-0
content: 引用 2 楼 拥抱Linux 的回复:你的题目的意思「删除该字符串的所有首部和尾部数字字符」到底是什么？就是说字符串中间出现的数字保留，是吗？ 下面是2个程序，你自己看哪个合适吧。 （1）去除字符串中的所有数字，允许输入的字符串的最大长度默认为99个字符加一个'\0'，可以自行修改。  #include <stdio.h>  #define LENGTH 100  int main(int argc, char const *argv[]) { 	char str[LENGTH]; 	int count = 0; 	char c;  	// 「忽略」所有的数字 	while ((c = getchar()) != '\n' && count < (LENGTH - 1)) { 		if (c < 48 || c > 57) { 			str[count] = c; 			count++; 		} 	} 	str[count] = '\0'; 	printf("%s * %d\n", str, count);  	return 0; }  （2）去除字符串的最前面和最末尾的数字，中间有数字的话，保留。允许输入的字符串的最大长度默认为99个字符加一个'\0'，可以自行修改。  #include <stdio.h> #include <string.h>  #define LENGTH 100  int main(int argc, char const *argv[]) { 	char str[LENGTH]; 	int count = 0; 	char c; 	char *p = str;  	while ((c = getchar()) != '\n' && count < (LENGTH - 1)) { 		str[count] = c; 		count++; 	} 	str[count] = '\0';  	// 「清除」字符串最前面的数字，或者叫「跳过」 	for (int i = 0; i < count; i++) { 		if (str[i] < 48 || str[i] > 57) 			break; 		else { 			p++; 		} 	}  	// 「清除」字符串最后面的数字，或者叫「跳过」 	for (int i = count - 1; i >= 0; i--) { 		if (str[i] < 48 || str[i] > 57) { 			str[i + 1] = '\0'; 			break; 		} 	}  	printf("%s * %d\n", p, (int)strlen(p));  	return 0; }   希望可以帮到你，欢迎及时给分、结帖。谢谢你

user: user-1
content: 本来就不删字母啊，你不是说要：删除该字符串的所有首部和尾部数字字符啊~~

user: user-0
content: 引用 3 楼 coo135的回复:  #include<stdio.h> #include<string.h> int main() { 	char a[100]; 	int len, front, tail; 	scanf("%s", a); 	len = strlen(a); 	for (front = 0; front < len; front++) { 		if (a[front]<'0' || a[front]>'9') 			break; 	} 	for (tail = len - 1; tail >= front; tail--) { 		if (a[tail]<'0' || a[tail]>'9') 			break; 	}  	int i = 0; 	if (front != 0) { 		while (front <= tail) { 			a[i++] = a[front++]; 		} 		a[i] = '\0'; 	} 	else  		a[tail + 1] = '\0'; 	printf("%s * %d\n", a, strlen(a)); 	return 0; }   这个去不了首部字母为什么呢

user: user-1
content: #include<stdio.h> #include<string.h> int main() { 	char a[100]; 	int len, front, tail; 	scanf("%s", a); 	len = strlen(a); 	for (front = 0; front < len; front++) { 		if (a[front]<'0' || a[front]>'9') 			break; 	} 	for (tail = len - 1; tail >= front; tail--) { 		if (a[tail]<'0' || a[tail]>'9') 			break; 	}  	int i = 0; 	if (front != 0) { 		while (front <= tail) { 			a[i++] = a[front++]; 		} 		a[i] = '\0'; 	} 	else  		a[tail + 1] = '\0'; 	printf("%s * %d\n", a, strlen(a)); 	return 0; }

user: user-2
content: 你的题目的意思「删除该字符串的所有首部和尾部数字字符」到底是什么？就是说字符串中间出现的数字保留，是吗？ 下面是2个程序，你自己看哪个合适吧。 （1）去除字符串中的所有数字，允许输入的字符串的最大长度默认为99个字符加一个'\0'，可以自行修改。  #include <stdio.h>  #define LENGTH 100  int main(int argc, char const *argv[]) { 	char str[LENGTH]; 	int count = 0; 	char c;  	// 「忽略」所有的数字 	while ((c = getchar()) != '\n' && count < (LENGTH - 1)) { 		if (c < 48 || c > 57) { 			str[count] = c; 			count++; 		} 	} 	str[count] = '\0'; 	printf("%s * %d\n", str, count);  	return 0; }  （2）去除字符串的最前面和最末尾的数字，中间有数字的话，保留。允许输入的字符串的最大长度默认为99个字符加一个'\0'，可以自行修改。  #include <stdio.h> #include <string.h>  #define LENGTH 100  int main(int argc, char const *argv[]) { 	char str[LENGTH]; 	int count = 0; 	char c; 	char *p = str;  	while ((c = getchar()) != '\n' && count < (LENGTH - 1)) { 		str[count] = c; 		count++; 	} 	str[count] = '\0';  	// 「清除」字符串最前面的数字，或者叫「跳过」 	for (int i = 0; i < count; i++) { 		if (str[i] < 48 || str[i] > 57) 			break; 		else { 			p++; 		} 	}  	// 「清除」字符串最后面的数字，或者叫「跳过」 	for (int i = count - 1; i >= 0; i--) { 		if (str[i] < 48 || str[i] > 57) { 			str[i + 1] = '\0'; 			break; 		} 	}  	printf("%s * %d\n", p, (int)strlen(p));  	return 0; }   希望可以帮到你，欢迎及时给分、结帖。

user: user-3
content: char str[10]; int i=0; int j; char c;  while(c=getchar()!=回车&&i<9) {    str[i]=c;    i++; } for(j=0;j<i-1;j++) {   str[j]=str[j+1]; } str[j+1]=‘\0’;  这样子可以吗