楼主: edwardzxf
1205 2

字符的识别 [推广有奖]

  • 0关注
  • 2粉丝

已卖:32份资源

讲师

26%

还不是VIP/贵宾

-

威望
0
论坛币
222 个
通用积分
0.4203
学术水平
0 点
热心指数
2 点
信用等级
0 点
经验
3991 点
帖子
242
精华
0
在线时间
375 小时
注册时间
2010-7-30
最后登录
2021-5-25

楼主
edwardzxf 学生认证  发表于 2013-9-24 11:29:04 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
%macro String(Str=);
%Let i=1;
%do %until(%sysevalf(%Scan(&Str,&i," ")= ));
                  
                    %let Str&i=%Scan(&Str,&i," ");

                    %put ***Str&i=&&Str&i;
                    %let i=%eval(&i+1);
%end;
%mend String;

%String(Str=a b cd);

輸出結果 :
***Str1=a
***Str2=b
***Str3=cd

如果是%String(Str=a b c*d); 则报错如下:
ERROR: A character operand was found in the %EVAL function or %IF condition where a numeric
       operand is required. The condition was: c*d=
ERROR: %EVAL function has no expression to evaluate, or %IF statement has no condition.
ERROR: The condition in the %DO %UNTIL loop, %sysevalf(%Scan(&Str,&i," ")= ), yielded an invalid
       or missing value, .  The macro will stop executing.
ERROR: The macro STRING will stop executing.

请问应该如果让它识别c*d是字符,并且进行正确判断呢? 谢谢。



二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:Expression condition Executing Character statement character function ERROR where

沙发
pobel 在职认证  发表于 2013-9-24 12:54:15
%do %until(%sysevalf(%quote(%Scan(&Str,&i," "))= ));
和谐拯救危机

藤椅
edwardzxf 学生认证  发表于 2013-9-24 13:27:04
pobel 发表于 2013-9-24 12:54
%do %until(%sysevalf(%quote(%Scan(&Str,&i," "))= ));
恩,可以啦,谢谢

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-6 07:07