이것은 나에게 단순한 것처럼 보이지만 주위를 두뇌로 볼 수는 없습니다. 문자열을 가져오고, 공백을 확인하고, 첫 번째 공백을 무시하고 싶습니다. 그러나 모든 공백을 제거하십시오. 예 :turbo pascal은 문자열에서 두 번째 공간을 제거합니다.
MyString : = 'Alexander The Great';
출력 'Alexander TheGreat'
미리 감사드립니다.
이것은 나에게 단순한 것처럼 보이지만 주위를 두뇌로 볼 수는 없습니다. 문자열을 가져오고, 공백을 확인하고, 첫 번째 공백을 무시하고 싶습니다. 그러나 모든 공백을 제거하십시오. 예 :turbo pascal은 문자열에서 두 번째 공간을 제거합니다.
MyString : = 'Alexander The Great';
출력 'Alexander TheGreat'
미리 감사드립니다.
마우로스에게 도움을 주셔서 감사합니다. 오늘 아침에 다시 확인하기 전에 알아 냈습니다. 이것은 앞으로이로 실행할 수있는 다른 사람에 대한 답변입니다 :
Crush the Name if it has more than one space in it
For example: "Alexander The Great" Becomes "Alexander TheGreat",
"John" stays as "John", "Doc Holiday" stays as "Doc Holiday"
"Alexander The Super Great" becomes "Alexander TheSuperGreat" and
so on and so forth.
FirstSpacePosition := POS(' ',LT.Name);
s := Copy(LT.Name,1,FirstSpacePosition);
s2 := Copy(LT.Name,FirstSpacePosition,Length(LT.Name));
s := StripAllSpaces(s);
s2 := StripAllSpaces(s2);
Insert(' ',s,(Length(s)+1));
LT.Name := s+s2;
StripTrailingBlanks2(LT.Name);
StripLeadingBlanks(LT.Name);
을 그리고 StripAllSpaces 기능이 모습 :
FUNCTION StripAllSpaces(s3:STRING):STRING;
BEGIN
WHILE POS(' ',s3)>0 DO Delete(s3,Pos(' ',s3),1);
StripAllSpaces:=s3;
END;{StripAllSpaces}
과 StripLeadingBlanks을/StripTrailingBlanks 함수는 다음과 같다 :
PROCEDURE StripTrailingBlanks2(var Strg: string);
BEGIN
while Strg[Length(Strg)] = ' ' do
Delete(Strg, Length(Strg), 1);
END; { END StripTrailingBlanks }
PROCEDURE StripLeadingBlanks(var Strg: string);
BEGIN
While (Length(Strg) > 0) and (Strg[1] = ' ') do
Delete(Strg, 1, 1);
END; { END StripLeadingBlanks }
나는 보통 ...이 물어하지만 적어도이 작동하는 것 같다 일을 할 수있는 가장 좋은 방법입니다 그래서 만약 내가 모르는 자바를 사용
program nospaces(output);
var
MyString : string;
ResultStr: string;
count: integer;
i: integer;
Temp: string;
n: string;
begin
ResultStr:='';
MyString := 'Alexander The Great';
writeln(MyString);
count := 0;
for i := 1 to length(MyString) do
begin
Temp := copy(MyString, i, 1);
if Temp = ' ' then
begin
If count=0 then
begin
count := count + 1;
ResultStr := ResultStr + Temp;
end;
end
else
begin
ResultStr := ResultStr + Temp;
end
end;
writeln(ResultStr);
readln(n);
end.
(DOS 용 터보 파스칼 7.0을 사용하여) 내가 무슨 짓을 한? 나는 문자열의 문자를 cicle. 찾은 문자가 공백이 아닌 경우 결과 문자열에 추가합니다. 문자가 '공백'이고 첫 번째 문자 인 경우 (count = 0이기 때문에 첫 번째 문자입니다) 1을 추가하여 결과 문자열에 문자를 추가합니다. 그런 다음 캐릭터가 다시 공간 인 경우이 공간을 계속 무시하게 만드는 카운트 = 1을 갖습니다.