64,637
社区成员
发帖
与我相关
我的任务
分享
#include <stdio.h>
void main() {
char s1[32];
char s2[32];
char s3[32];
char s4[32];
char* istr = "ewewewe,.,,rerere-;;ewewewe'rerrere";
sscanf(istr,"%[a-z]%*[^a-z]%[a-z]%*[^a-z]%[a-z]%*[^a-z]%[a-z]",s1,s2,s3,s4);
printf("%s\n%s\n%s\n%s\n",s1,s2,s3,s4);
}
#include <stdio.h>
void tiqu(char const* p, char* s)
{
while(*s = *p) //原先想while(*s++ = *p++),结果后面的处理就会变复杂了,所以放弃
{
++p;
if ((*s <= 'a' || *s >= 'z') && (*s <= 'A' || *s >= 'Z'))//使用宏会清爽些
{
*s = '\n';
while ((*p <= 'a' || *p >= 'z') && (*p <= 'A' || *p >= 'Z'))
++p;
}
++s;
}
}
int main()
{
char str[255];
char* istr = "ewewewe,.,,rerere-;;ewewewe'rerrere";
tiqu(istr, str);
printf("%s\n", str);
return 0;
}
//第15行
*s = '\0';//没必要*s++ = '\0';虽然不影响结果,但是影响效率
#include <stdio.h>
int isa(char a)
{
return ('A'<= a && a<='Z' || 'a'<= a && a<='z');
}
void cutprint(const char*str)
{
for(int flag = -1; *str!='\0'; ++str) {
if(isa(*str)) {
putchar(*str);
flag=1;
} else {
if (1 == flag) putchar('\n');
flag=-1;
}
}
return;
}
int main()
{
const char* istr = "ewewewe,.,,rerere-;;ewewewe'rerrere";
cutprint(istr);
return 0;
}
#include <stdio.h>
#define isa(a) ('A'<= a && a<='Z' || 'a'<= a && a<='z')
int main()
{
const char* istr = "ewewewe,.,,rerere-;;ewewewe'rerrere";
for(int flag=-1;*istr && (isa(*istr)?( putchar(*istr), flag =1):((flag==1?putchar('\n'):0),flag=-1)); ++istr);
return 0;
}
#include <stdio.h>
void tiqu(char const* p, char* s)
{
while(*p)
{
if ((*p >= 'a' && *p <= 'z') || (*p >= 'A' && *p <= 'Z'))
*s++ = *p++;
else {
*s++ = '\n';
while ((*p <= 'a' || *p >= 'z') && (*p <= 'A' || *p >= 'Z'))
++p;
}
}
*s++ = '\0';
}
int main()
{
char str[255];
char* istr = "ewewewe,.,,rerere-;;ewewewe'rerrere";
tiqu(istr, str);
printf("%s", str);
return 0;
}