c语言利用指针1.输入两个字符串,比较是否相等,相等输出YES,不等输出NO。
时间: 2023-12-25 12:03:04 浏览: 56
可以使用指针来比较两个字符串是否相等,代码如下:
```c
#include <stdio.h>
#include <string.h>
int main()
{
char str1[100], str2[100];
printf("输入字符串1:");
gets(str1);
printf("输入字符串2:");
gets(str2);
if (strcmp(str1, str2) == 0)
printf("YES\n");
else
printf("NO\n");
return 0;
}
```
这里使用了 `strcmp()` 函数来比较两个字符串是否相等,如果相等返回0,否则返回非0值。注意,由于 `gets()` 函数不安全,建议使用 `fgets()` 函数代替。
相关问题
c语言判断输入的字符串是否为回文串,如果是输出yes,如果不是输出no。
可以使用双指针来判断一个字符串是否为回文串。具体做法如下:
1. 定义两个指针i和j,分别指向字符串的起始位置和末尾位置。
2. 循环比较i和j指向的字符是否相等,如果不相等,说明该字符串不是回文串,输出no。
3. 如果相等,将i指针往右移动一位,j指针往左移动一位,继续进行比较。
4. 当i和j指针相遇时,说明该字符串是回文串,输出yes。
下面是C语言实现的代码:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[100];
int i, j, len;
printf("请输入一个字符串:");
gets(str); // 输入字符串
len = strlen(str);
for (i = 0, j = len - 1; i < j; i++, j--) {
if (str[i] != str[j]) {
printf("no\n");
return 0;
}
}
printf("yes\n");
return 0;
}
```
需要注意的是,上面的代码使用了gets函数来获取输入的字符串,但是gets函数存在安全隐患,应该尽量避免使用。可以使用fgets函数替代,具体用法可以参考C语言的相关教材。
利用c语言及指针功能编程判断输入的一串字符是否为“回文”,如果是则输出Yes,否则输出No,所谓“回文”,是指正读和倒读都一样的字符串。
以下是使用C语言及指针功能编程判断输入的一串字符是否为回文的代码:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[100];
int len, i;
int flag = 1; // 用于标记是否为回文
printf("请输入一个字符串:");
scanf("%s", str);
len = strlen(str);
// 判断是否为回文
for (i = 0; i < len / 2; i++) {
if (*(str + i) != *(str + len - i - 1)) {
flag = 0;
break;
}
}
if (flag) {
printf("Yes\n");
} else {
printf("No\n");
}
return 0;
}
```
首先定义一个字符数组`str`,用于存储输入的字符串。然后使用`scanf`函数读入字符串。接着使用`strlen`函数获取字符串长度。
在判断是否为回文时,使用循环遍历字符串的前一半,对于每个字符,将其与对应位置上的字符进行比较,如果不相等,则标记为非回文。最后根据标记输出相应的结果。
需要注意的是,在判断字符是否相等时,可以使用数组下标访问字符,也可以使用指针访问字符,如上述代码中所示,使用指针访问字符可以更加简洁明了。