c语言做题时的点点笔记(1)QAQ

【1】scanf("%s",s) 它会读入一个不含空格、 TAB和回车符的字符串,存入字符数组s.(注意:s前面不含取址符&)如果是字符串数组char s[m] [n],可以用“scanf("%s", s[i])”读取第i个字符串。(注意,“scanf("%s", s)”遇到 空白字符会停下来。)

【2】用gets读入多行数据的一个示例

char c[105];
while(gets(c))
{
   if(c[0]==EOF) break;
}

[3](输入带空格的字符串)利用格式符“%[]”它的作用为扫描字符集合(下图中的\n可以换成其他字符常量或控制字符用于结束输入(可为EOF)) 注意:不能使用while(scanf("%[^\n]",s))输入含空格的字符串,程序会报错!!!我觉得是因为这个没有scanf返回值。

char s[10];
scanf("%[^\n]",s);

【4】strchr(s, c) ;(返回在s中字符c第一次出现的位置即地址,如果找不到就输出NULL)

【5】将a和b的值调换 : a^=b^=a^=b; ('^'异或符号,二进制数相同为0,不同为1)等效于[1]b^=a^=b; [2]a=a^b;  [1] 解释为b=b^(a^b)=a^b^b=a^0=a;(操作数的位运算并不改变原操作数的值)   [2]解释为a=a^b=(a^b)^(b^a^b)=a^a^b^b^b=b (这是将[1]中的式子带回去算)

【6】

 if (islower(s[i])){s[i]=='z'? s[i]='A': s[i]=s[i]-31;}//报错
 if (islower(s[i])){(s[i]=='z') ? (s[i]='A') : (s[i]=s[i]-31);}//正确

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值