
C 语言产出指定符号之间的字符串
#include<stdio.h>#include<stdlib.h>intmain(){charch1[500]={0};charch2[500]={0};inti=0...
#include <stdio.h>
#include <stdlib.h>
int main(){
char ch1[500] = { 0 };
char ch2[500] = { 0 };
int i = 0;
int j = 0;
while (scanf_s("%c", &ch1[i], 1) != EOF){
i++;
}
for (i = 0; ch1[i] != 0; i++){
if (ch1[i] == '/' && ch1[i + 1] == '*'){
for (; ch1[i] != '*'&& ch1[i + 1] != '/'; i++){
i++;
}
i = i + 1;
}
else{
ch2[j] = ch1[i];
j++;
}
}
for (j = 0; ch2[j] != 0; j++){
printf("%c", ch2[j]);
}
printf("\n");
return 0;
}
本人编写的代码如以上所示,但是代码本身只能接受绝对正确的输入,如果中间输入/或者*结果就会出现问题
如果将中间的语句修改掉也会出现问题,求大神!!!
用VS2013编写的,如果将
for (; ch1[i] != '*'&& ch1[i + 1] != '/'; i++){
i++;
}
i = i + 1;
修改成
for (; ch1[i] != '*'&& ch1[i + 1] != '/'; i++);
i = i + 2;
结果就会出错
调试过很多遍了 展开
#include <stdlib.h>
int main(){
char ch1[500] = { 0 };
char ch2[500] = { 0 };
int i = 0;
int j = 0;
while (scanf_s("%c", &ch1[i], 1) != EOF){
i++;
}
for (i = 0; ch1[i] != 0; i++){
if (ch1[i] == '/' && ch1[i + 1] == '*'){
for (; ch1[i] != '*'&& ch1[i + 1] != '/'; i++){
i++;
}
i = i + 1;
}
else{
ch2[j] = ch1[i];
j++;
}
}
for (j = 0; ch2[j] != 0; j++){
printf("%c", ch2[j]);
}
printf("\n");
return 0;
}
本人编写的代码如以上所示,但是代码本身只能接受绝对正确的输入,如果中间输入/或者*结果就会出现问题
如果将中间的语句修改掉也会出现问题,求大神!!!
用VS2013编写的,如果将
for (; ch1[i] != '*'&& ch1[i + 1] != '/'; i++){
i++;
}
i = i + 1;
修改成
for (; ch1[i] != '*'&& ch1[i + 1] != '/'; i++);
i = i + 2;
结果就会出错
调试过很多遍了 展开
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询