【发布时间】:2015-03-11 20:51:06
【问题描述】:
所以经过大量的反复试验,我做到了:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
/*Prototype of a hashtag function*/
void hashtag(char *,char *);
int main()
{
/* Declaration of strings S and P*/
char S[100], P[100]="";
/*Getting the string S from a keyboard*/
printf("Unesi string S: ");
gets(S);
/*Calling "hashtag"*/
hashtag(S,P);
}
/*Hashtag function*/
void hashtag(char *S,char *P)
{
/*Finding the position of 2 #'s in string S*/
int i, t1, t2;
for(i=0;i<100;i++)
{
if(S[i]=='#')
{
t1=i;
break;
}
}
for(i=100;i>0;i--)
{
if(S[i]=='#')
{
t2=i;
break;
}
}
/*"Filling" the empty string P with the text in between #'s*/
int k;
for(i=t1+1,k=0;i<t2,k<(t2-t1-1);i++,k++)
{
P[k]=S[i];
}
puts(P);
}
为什么我有这种可怕的感觉,这太复杂了?我有一种感觉,没有必要找到确切的位置,而且可以比这简单得多。
【问题讨论】:
-
更适合代码审查?
-
我更倾向于将其视为
12(abcd)09bla或12"abcd"09bla来吸引您的注意力。 -
for(i=100;i>0;i--)?????你必须去for(i=99;i>=0;i--)!!!!! -
@IdeaHat 而不是
12(abcd(09bla? -
@NickT 是的,不平衡的括号是我决定加上引号的原因。阅读到 delim,复制到 delim,打印 0,完成。