【发布时间】:2022-01-23 01:43:11
【问题描述】:
我的作业是 某些特定的标点符号、句号(.)、逗号(,)、冒号(:)、分号(;)、问号 (?) 和感叹号 (!) 后面应该跟一个空格。例如,以下 应更正字符串,因为上述标点符号后没有空格。 (可能还有一些其他的标点符号后面需要一个空格;但是,给定 标点符号 (.,:;?!) 就足够了) 我看到你踢足球了。你是个好球员。 我看见你踢足球了。你真是个好球员。 你好!你好吗?很好,谢谢,还有你。 你好!你好吗?好的,谢谢,还有你。
我试图在所有标点符号之后腾出空间,但我得到了错误
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(){
char string[200];
scanf("%s", string[200]);
char string1[200] = " ";
for(int i=0;i<strlen(string);i++){
if( s[i] !='.' && ',' && ';' && ':' && '!' && '?'){
string1 = string1 + string[i];
}
else{
string1= string1 + string[i] + " ";
}
}
string = string1;
printf("new string : %s", string);
return 0;
}
有人可以帮助我吗,或者有人可以将我的 c++ 代码转换为 C
using namespace std;
int main()
{
string s;
cout<<"Please enter the string"<<endl;
cin>>s;
cout<<"Input string:"<<s<<endl;
string s1="";
for(int i=0;i<s.length();i++)
{
if(s[i]!='.'&&s[i]!=','&&s[i]!=';'&&s[i]!=':'&&s[i]!='!'&&s[i]!='?')
s1=s1+s[i];
else
s1=s1+s[i]+" ";
}
s=s1;
cout<<"Updated string:"<<s<<endl;
return 0;
}
我正在尝试腾出空间,但在 C 语言中不能有人想出吗?
【问题讨论】:
-
你需要
strcat来加入c中的字符串 -
感谢您的帮助
-
if子句检查 C 代码中的标点字符不正确。在 C++ 中的代码是正确的。 -
如果您使用 C 编程,为什么要使用 C++ 标签? C 和 C++ 是不同的语言。例如,C++ 有
std::string类型,而 C 没有。请适当调整标签。