❶ 如何在Linux中用C语言创建一个字符串(0x01 0x02 0x03……0x50)
首先,0x50比50大,其次你程序定义的两个指针无法存放字符串,只能用来指向一个已经存在的字符串。
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main() { char data[0x50+1]={0}; int i;
for ( i=0;i<0x50;i++ ) data[i]=i+1;
data[i]=0;
printf("%s\n",data);
return 0;
}
❷ Linux中c语言中汉字字符串的输出
1、计算机用两个字节来表示一个汉字,“我”在内存里就是这样存放的:CE
D2。CE是str[0]的内容,D2是str[1]的内容。第一次循环输出str[0],但是这个字符在ASCII字符集里代表这样一个东西(不知道在这儿能不能正常显示),但是Windows的命令提示符程序读取到这里就会自动使用宽字符集,也就是说,它已经准备好读取下一个字符,然后把他们当成一个字符显示出来。于是就出现了那个汉字。
2、例程:
#include <stdio.h>
int main()
{
printf("%c%c",(char)0xce,(char)0xd2);
}
❸ LINUX shell 遇到的问题。 我想计算1+2+3+4.到100
这里
i
是当做计数器用的,每次循环递增1。r
是当做累加器用的,将
i
的值进行累加。
这里没有用for循环,而是用的while循环,其实是一样的,而且while循环更为通用(sh不支持for循环)。
循环的次数也是有定义的,while
[
"$i"
!=
"100"
]这句就是定义,只要
i
没递增到100,就会一直循环。其实这句从语义上来说是不对的,这里是整数的比较而不是字符串的比较,所以比较符应该用-ne而不要用!=,即,应该写成
while
[
$i
-ne
100
]
下面是个更为简单的实现,你可以体会一下(shell中的变量其实不需要初始化,自有其默认值)。
#!/bin/bash
for
i
in
{1..100}
do
r=$((r+i))
done
echo
$r